我经常遇到这样的情况:我有一个指令(A),它接受一个项目列表,然后将这些项目的一个子集传递给另一个指令(B),但为了做到这一点,我总是必须查看指令 A 中的原始列表控制器,将其过滤到一个新数组中,并将其分配给我范围内的一个新变量。
我知道你可以这样做,但是当你使用另一个指令的引用 ( ){{ myList | filter:'!propertyName'}}
时,你不能使用相同的表达式。=
有没有办法在模板中做到这一点,或者只是更好的方法?
这是一个例子:
在这种情况下,“iterable”使用键盘迭代它提供的项目。如果它被禁用,我不想能够选择一个项目,所以我想从 iterable 指令使用的列表中删除它。
<div class="list-directive">
<iterable items="items" active="activeItem" disabled="enableKeyboardIteration"></iterable>
<div ng-repeat="item in items" ng-class="{disabled: item.disabled, active: activeItem == item}" ng-mouseenter="makeItemActive(item)">
{{item.name}}
</div>
</div>