0

我有一个视图模板,它具有model一个服务属性,在指令的控制器中设置。当服务的属性更新时,它不会在视图中更新。

<ul>
 <li ng-repeat="i in x">
   <item model=i></item>
 </li>

app.directive('x', function($http, MyService){
    return {
        restrict: 'E',
        replace: true,
        templateUrl: "partials/list.html",
        controller: function($scope, MyService){
            $scope.x = MyService.x;
        }
    }
});

我可以让模型反映更改的唯一方法是指令的控制器是否让服务更新属性 - 但在调用控制器时,我还没有数据。

该怎么办?我应该以某种方式显式调用指令的控制器,还是打破该控制器中的逻辑?两者看起来都不是很棱角分明。

我错过了谜题的一部分,不是吗?如何像引用而不是文字一样进行$scope.x更新?MyService.x

4

1 回答 1

1

在任何给定时间,您的$scope.xMyService.x应该都指向同一个数组。最好的方法是在服务中使用[].

之后总是要pushslice操作从数组中添加和删除元素。

当绑定设置在不同的数组上并且服务指向不同的数组时,可能会出现此问题。

于 2013-09-16T13:32:43.640 回答