如何在 ng-repeat 中使用指令?
How to use directive inside ng-repeat?
我想在 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:
我的 Plunkr:http://plnkr.co/edit/ji2ppBp0PyRCzAT4UhMj?p=preview
ng-repeat 创建一个子作用域,item
作为原始类型传递给子作用域。即使您使用 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 );
};
您可能还需要更改 minus
和 plus
方法以引用 scope.value.val
我想在 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:
我的 Plunkr:http://plnkr.co/edit/ji2ppBp0PyRCzAT4UhMj?p=preview
ng-repeat 创建一个子作用域,item
作为原始类型传递给子作用域。即使您使用 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 );
};
您可能还需要更改 minus
和 plus
方法以引用 scope.value.val