在ng-repeat in指令中观察变量

时间:2014-08-11 11:50:33

标签: angularjs angularjs-directive

我有一个名为advancedMode的指令,可以这样放在table上:

<table advanced-mode>
  <tbody>
    <tr ng-repeat="user in users">
      <td>{{ user.id }}</td>
      <td>{{ user.name }}</td>
    </tr>
  </tbody>
</table>

现在我想将代码添加到我的指令中,以便它监视$scope.users。但棘手的部分是,我不知道人们会在ng-repeat中使用哪些变量名称。在这种情况下它是$scope.users,但它可能就像$scope.orders

那么有没有办法在我的指令中获取tr标签中使用的变量nam?

目前我的指令如下:

.directive('advancedMode', [function() {
    restrict: 'A',
    scope: {
        options: '=',
        rows: '=',
    },
    link: function ($scope, $elem) {
        // get list from ng-repeat in tr tag and watch that for changes
    }
}]);

1 个答案:

答案 0 :(得分:0)

我不确定你的意思

  

但棘手的部分是,我不知道人们将在ng-repeat中使用哪些变量名称

但是你不能简单地将list变量传递给你的指令,如下所示:

.directive('advancedMode', [function() {
    restrict: 'A',
    scope: {
        list: '=advancedMode',
        options: '=',
        rows: '=',
    },
    link: function ($scope, $elem) {
        // the list is now in $scope.list
        console.log($scope.list);
    }
}]);

然后只需在标记中添加列表:

<table advanced-mode="users">