Zacząłem pracować z AngularJS i obejmowałem konwencję do pisania kontrolerów z tym, a nie z $ scope. Więc moje kontrolery wyglądać następująco:
myApp.controller("SomeController", function(){
this.myModel={id:-1, name:"empty"};
});
<div ng-controller="SomeController as ctrl">
<input type="text" ng-model="ctrl.myModel.name" />
</div>
Teraz zmienił obiekt myModel w kontrolerze w taki sposób, jak to:
this.myModel=someOtherObjectFromAForeignSource;
... a wartość wewnątrz kontrola wejścia nie zmiana. Przeczytałem o funkcji $ apply i jej używaniu, ale ponieważ używam konwencji "this", nie mam zmiennej $ scope.
Jak wybrać metodę $ apply?
Dlaczego uważasz, że potrzebujesz '$ apply()'? Skąd pochodzą te inne dane? - Twój "input" jest również ustawiony na właściwość 'name' - czy twój nowy obiekt zawiera tę właściwość? – tymeJV
Tak, zawiera właściwość name - ten nowy obiekt pochodzi z kontrolki innej firmy, a kątowy nie może zarejestrować zmiany automatycznie. W każdym razie, moim pytaniem jest nadal, jak użyć metody $ apply bez użycia $ scope? –
Myślę, że nie można użyć $ apply bez $ scope lub $ rootScope. – Ved