0
我试图按照此示例进行操作,但当输入由于某些原因而更改时,我的代码从未输入回调,并且newValue
。我的例子和下面的示例bin唯一的区别是我使用服务来保存值而不是控制器变量。当使用控制器作为语法时,观察服务对象的更改不起作用
我一直在努力使它工作,但我无法用头包住它。我错过了什么?
http://jsbin.com/yinadoce/1/edit?html,js,output
请注意,我已经排除了输入和前值的步骤在服务更新,因为这完美的作品。问题只是我的手表不明白服务中的值何时发生变化。
编辑:当我粘贴代码时,忘记了在控制器中注入$scope
,现在它已完成。
控制器:
coForms.controller('CoFormsCtrl', ['$scope', 'coFormsInfo', function($scope, coFormsInfo) {
$scope.$watch(angular.bind(coFormsInfo.getInfo(), function() {
return coFormsInfo.getInfo();
}), function(newVal) {
console.log(newVal);
});
}]);
服务:
coForms.service('coFormsInfo', [function() {
var info = {
filteredList: []
}
this.setFilteredList = function(list) {
info.filteredList = list;
};
this.getInfo = function() {
return info;
};
}]);