Ich muss einige Änderungen an Controller B (innerhalb eines Ereignisses) widerspiegeln, wenn ich am Controller A Änderungen vornimmt. Dafür benutze ich einen Service. Wenn ich den Dienstwert von FirstCtrl ändere, feuert ng-change nicht an SecondCtrl. Gibt es etwas, das ich vermisst habe oder ändern muss?ng-change feuert nicht, wenn der Wert vom Service geändert wird
Bitte beachten Sie, dass ich Winkel 1.5.6 verwenden. und möchte nicht sehen oder sogar Umfang. Unten ist mein Code.
var myApp = angular.module('myApp', []);
myApp.factory('Data', function() {
return {
FirstName: ''
};
});
myApp.controller('FirstCtrl', ['Data',
function(Data) {
var self = this;
debugger
self.changeM = function() {
debugger
Data.FirstName = self.FirstName;
};
}
]);
myApp.controller('SecondCtrl', ['Data',
function(Data) {
var self = this;
self.FirstName = Data;
self.changeM = function() {
alert(1);
};
}
]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script>
<div ng-app="myApp">
<div ng-controller="FirstCtrl as c">
<input type="text" ng-model="c.FirstName" data-ng-change="c.changeM()">
<br>Input is : <strong>{{c.FirstName}}</strong>
<div ng-controller="SecondCtrl as c1">
Input should also be here: {{c1.FirstName}}
<input type="text" ng-model="c1.FirstName" data-ng-change="c1.changeM()">
</div>
</div>
<hr>
</div>
Ich frage mich, was haben Sie gegen $ Scope oder Watch? – adolfosrs