In AngularJS is it possible to force a view to update from outside of it's controller?

EDIT:

The question as stated in the title is answered correctly below, so I think in the interest of people seeing how to do this, I should leave the question with the answer below.

It turns out that the framework I'm using has not fully abstracted away the variable-to-camelcase convention of Angular here. It's abstracted away most everywhere else, just not here, and everything works now, so I don't need to force a redraw at all. If anyone does, see the answer below. :)

Do the event binding inside your directive, not inside your controller. You must call $apply() from inside your directive if you make changes to some model and want those changes to be reflected outside the directive:

myApp.directive('someDir', function () {
    return {
        restrict: 'E',
        scope: {
            model: '=',
        },
        link: function (scope, elt, dirs) {
            elt.bind('click', function () {
                scope.$apply(function () {
                    // make changes to scope.model
                });
            });
        }
    }
});