来自child指令的角度访问ng-repeat数组

时间:2015-03-20 23:19:26

标签: angularjs

我有一个角度指令的想法,但我不确定它是否可能。

我经常要从ng-repeat数组中删除和项目,所以事实上的解决方案是在范围上有一个函数:

 $scope.remove = function(item) { 
    var index = $scope.items.indexOf(item);
    $scope.items.splice(index, 1);     
 }

我经常为每个ng-repeat编写这个样板代码,能够做这样的事情会很好:

 <li ng-repeat="item in items">
    <button ng-click-remove="item"></button>
 </li>

基本上我认为该指令只是简单地包装 - 然后我开始思考,甚至​​可以从我的指令访问items数组而不知道它的名字或使用$ parent?

1 个答案:

答案 0 :(得分:0)

我这样做的方法是创建一个处理删除/创建所述任务的服务,然后在控制器中使用该包装器。我的意思是,你建议的方式,你仍然需要编写相同的代码,但只需在指令中执行。此外,是的,可以从指令访问它,您可以将控制器传递给它。

function dir() {
 return {
  controller: 'ctrl as ctrl',
  link: function(scope, elem, attrs, ctrl){
      console.log(ctrl.items);
      console.log(attrs.ngClickRemove); // gets the value of item.
}
 }
}

虽然我会谨慎使用ng语法,因为它应该保留给Angularjs。