使用 ng-click 和 ng-repeat 创建过滤器菜单

Using ng-click with ng-repeat to create a filter menu

我正在尝试使用 ng-repeat 创建我的过滤器菜单,所有模式都在我的时间轴中。

<a ng-click="filterModality = {entry_team.name: '{{modality}}'}" ng-repeat="modality in modalities">{{modality}}</a>

<!-- 
Output 
<a ng-click="filterModality = {entry_team.name: 'Atletismo'}" ng-repeat="modality in modalities">Atletismo</a>
-->


<a ng-click="filterModality = {entry_team.name: 'Atletismo'}">Atletismo</a>

ng-repeat 不起作用,但手动执行的相同输出工作正常。 我正在使用 AngularJS 1.2.9(不幸的是)。

您似乎将插值与双向绑定混合在一起。此外,您正在 ng-repeat 范围内设置一个对象引用,这可能会在该范围内创建一个新的对象引用,然后在父范围内屏蔽相同名称的引用。

尝试使用 filterModality = {} 在父范围中定义您的对象,然后只需更改 ng-click 中的 属性 值而不是更改对象引用。

<a ng-click="filterModality['entry_team.name'] = modality" ng-repeat="modality in modalities">{{modality}}</a>