$digest behaviour research 2
by Valentin Sarychev
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.0/lodash.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.2/angular.js"></script>
<div ng-app="myApp">
<abc value="value"></abc>
<pre>{{value | json}}</pre>
</div>
JavaScript
var m = angular.module('myApp', []);
m.run(function($rootScope) {
$rootScope.value = {
x: '123'
};
setTimeout(function() {
// прикрутить логгеры к $digest скопов
$rootScope.$digest = _.flowRight($rootScope.$digest, function() {
console.log('$rootScope digest has been invoked');
});
}, 0);
});
m.directive('abc', function() {
return {
scope: {
value: '='
},
template: '<input type="text">',
link: function(scope, iElement) {
var input = iElement.children();
input.val(scope.value.x);
input.on('input blur', function() {
scope.value.x = angular.element(this).val();
// scope.$digest();
scope.$parent.$digest();
});
}
};
});