如何在 ng-repeat中使用指令

How to use directive inside ng-repeat?

本文关键字:指令 ng-repeat      更新时间:2023-09-26

我想在ng-repeat中使用counter http://plnkr.co/edit/eRWPuEP8LdQBbHksIL3S?p=info 指令喜欢

<div ng-repeat="item in items">
    <div counter value="item" min="1" max="30" step="3" editable></div>
</div>

在我的控制器中

$scope.items = []
items.push(1);
items.push(2);

但它不起作用。

编辑:1

在我的控制器中

$scope.items = []
$scope.items.push(1);
$scope.items.push(2);

编辑 2:

我的普伦克尔 : http://plnkr.co/edit/ji2ppBp0PyRCzAT4UhMj?p=preview

ng-repeat创建一个子作用域,item子作用域作为基元类型传递给子作用域。 即使您使用 2 路绑定隔离指令中的范围 value,该值也不会更改,即。 scope.items总是[1, 2]

解决方案是将对象(引用)传递给子范围,以实现此目的:

$scope.items = []
$scope.items.push({val:1});
$scope.items.push({val:2});
// template of counter directive
<input type="text" class="counter-field" ng-model="value.val">
var setValue = function( val ) {
    scope.value.val = parseInt( val );
};

您可能还需要更改minusplus方法来引用scope.value.val