Опитвам се да актуализирам модела от директива и имам проблеми, когато $apply или $digest вече се изпълняват. И аз имам няколко въпроса:
- Защо
scope[attrs.ngModel]
съществува, ноngModel.$modelValue
не съществува във фазата на $apply? - Защо изгледът не винаги може да се актуализира във фаза $digest (особено в трудни ситуации)?
- $digest фаза локален ли е $digest() или $root.$digest() (от $apply()) в моя пример?
require: '?ngModel',
link: function(scope, element, attrs, ngModel) {
element.bind('myEvent', function(e) {
//Update model from directive in phase: $apply | $digest
scope[attrs.ngModel].value = scope.$$phase; //Model: '$apply' | '$digest'
//or
ngModel.$modelValue.value = scope.$$phase; //Model: 'none' | '$digest'
//or
ngModel.$modelValue.value = scope.$$phase; //Model: '' | '$digest'
ngModel.$setViewValue(ngModel.$modelValue);
});
}
Демо на живо: http://plnkr.co/edit/gVY6GJejEKCLdTIXNAzK?p=preview