我有
<tr ng-repeat="item in list">
<td>{{item.name}}</td>
<td><button ng-click="remove" is-disabled>Delete!</button></td>
</tr>
指令isDisabled
和
return {
link: function (scope, elm, attrs)
{
// get clicked row here
}
};
如何在此指令中获得item
? $scope.list
- 项目清单
我发现我可以在$index
中使用ng-repeat
,这是正确的方法吗?还有其他解决方案吗?
答案 0 :(得分:2)
您可以通过访问父作用域来访问当前项目,如下所示:
scope.$parent.item
但这不可取,因为它会在代码和名为 item 的硬编码属性中创建紧耦合。
尝试创建这样的指令:
app.directive("isDisabled", function() {
return {
scope:{
item:"="
},
link: function(scope, elm, attrs) {
console.log(scope.item);
}
};
});
并传递项目:
<tr ng-repeat="item in list">
<td>{{item.name}}</td>
<td>
<button ng-click="remove" is-disabled item="item">Delete!</button>
</td>
</tr>