使用angularJS在标记中过滤数组引用?

使用angularJS在标记中过滤数组引用?,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我经常遇到这样的情况:我有一个指令a,它接受一个项目列表,然后将这些项目的子集传递给另一个指令B,但为了做到这一点,我必须始终在指令a的控制器中观察原始列表,将其过滤到一个新数组中,并将其分配给我作用域上的一个新变量 我知道您可以执行{{myList | filter:'!propertyName'}},但是当您使用另一个指令的引用=,您不能使用相同的表达式 有没有一种方法可以在模板中实现这一点,还是有更好的方法 以下是一个例子: 在这种情况下,iterable使用键盘对其提供的项进行迭代。如果

我经常遇到这样的情况:我有一个指令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>

请给出一个这种情况的工作示例。在代码中看到您当前的方法会很有用。我已经在问题中添加了示例。我仍然无法理解您的问题/示例,无法理解您试图实现的目标。。。但我相信我可以帮助您,我只是尝试将项目子集传递给另一个指令,而不必对原始项目列表执行$watch并在控制器中创建另一个数组。