ng-repeat更改时,指令不会更新

时间:2015-11-28 16:25:28

标签: javascript angularjs angularjs-directive angularjs-ng-repeat

我有一个使用ng-repeat重复的指令。请考虑以下代码:

<my-drctv todos="todos" ng-repeat="todos in todoGroups track by todos[0].id"></my-drctv>

todoGroups是一个二维数组,包含分组的待办事项。

这是我的指示:

angular.module('myModule').directive('myDrctv', function() {
  return {
    restrict: 'E',
    scope: {
      todos: "="
    },
    replace: true,
    templateUrl: '<div>{{firstTodo.description}}</div>',
    link: function link(scope, element, attrs, ctrl) {
      console.log("myDrctv: link fn");
      scope.firstTodo = scope.todos[0];
    }
  };
});

这列出了我的待办事项(模板已简化)并且到目前为止一直有效。

现在问题:从我的服务器重新获取todoGroups并在我的控制器中设置为$scope.todoGroups = myService.fetch()的新值时,我的指令不会更新,因为我的指令的链接功能不是第二次调用。

  
      
  • 似乎这个问题只发生在服务器返回的列表长度与以前相同的情况下,只有我的待办事项的“内容”发生了变化(但我不确定)
  •   
  • 出于性能原因,角度是否会重复使用我的指令?我一直认为,它会破坏ng-repeat内的每个元素并插入新元素(在我的例子中是指令)
  •   
  • 如何触发对我的指令的link功能的第二次调用?
  •   

0 个答案:

没有答案