如何在AngularJS中查看服务数据?
我正在使用上面的代码,在这里我想观看myService.$data,它是在其服务中定义的$第一次加载控制器时,watch会被调用,在代码的其他地方,我会更新服务变量$data。当我使用ng repeat指令并绑定$data时,这会反映在UI中。 根据我在UI更新之前的理解,这个特殊的手表必须再次调用,但事实并非如此。因此,我假设我没有正确使用手表。只需执行以下操作:如何在AngularJS中查看服务数据?,angularjs,angularjs-scope,angularjs-ng-repeat,Angularjs,Angularjs Scope,Angularjs Ng Repeat,我正在使用上面的代码,在这里我想观看myService.$data,它是在其服务中定义的$第一次加载控制器时,watch会被调用,在代码的其他地方,我会更新服务变量$data。当我使用ng repeat指令并绑定$data时,这会反映在UI中。 根据我在UI更新之前的理解,这个特殊的手表必须再次调用,但事实并非如此。因此,我假设我没有正确使用手表。只需执行以下操作: myApp.directive('myView', ['myService',function($scope) { retu
myApp.directive('myView', ['myService',function($scope) {
return {
restrict : 'C',
template : '',
templateUrl : 'myView.html',
controller : function($scope,myService){
$scope.items = myService.$data;
$scope.$watch('myService.$data' , function(newVal, oldVal, scope) {
console.log("Watching items ...");
});
},
};
}]);
但是:
如果$data是您可能要添加的对象,则为true,以便即使内部属性发生更改,也能收到通知:
$scope.$watch(
function() { return myService.$data; },
function(...) { /*same*/ }
);
代码中的声明是错误的。应仅显示以下更改:
$scope.$watch(
function() { return myService.$data; },
function(...) { /*same*/ },
true
);
myApp.directive('myView', ['myService',function(myService) { // NOT $scope
...
controller: ["$scope", function($scope) { // YOU GET myService FROM THE DIRECTIVE