如何在AngularJS中查看服务数据?

如何在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

我正在使用上面的代码,在这里我想观看myService.$data,它是在其服务中定义的$第一次加载控制器时,watch会被调用,在代码的其他地方,我会更新服务变量$data。当我使用ng repeat指令并绑定$data时,这会反映在UI中。 根据我在UI更新之前的理解,这个特殊的手表必须再次调用,但事实并非如此。因此,我假设我没有正确使用手表。

只需执行以下操作:

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