In AngularJS they have $scope.$apply() method to update the UI when there's a model change that is not done through normal AngularJS means.
In the more recent tutorials they recommend using the <controller> as <object> style of instantiating the objects and use this as the scope from their example
.controller('TodoListController', function() {
var todoList = this;
However todoList.$apply() does not appear to work. Am I forced to use $scope.$apply() for this?
Yes you have to use $scope.$apply(), but that's not a bad thing.
I had this same exact dilemma after reading that one should use controllerAs syntax. I even asked this question a few months later In an isolate scope directive is there any difference between defining variables on scope and defining variables on the controller?
The answer, after thinking about this for a while, is that controllerAs syntax doesn't mean an aversion to $scope, but a design pattern to prevent global state from being stored in $scope because that's when you start nesting scopes, which leads to a lot of problems.
$scope isn't an evil thing. It just lets you screw yourself over, but if you need to use it you shouldn't stop yourself from doing so.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With