Angular:当您只期望一个结果时,更好的过滤方式

时间:2015-05-14 15:14:30

标签: angularjs

我使用以下角度代码从列表中获取一个项目。

<span ng-repeat="metro in metros | filter:{id:event.metro_id}">
    {{metro.timezone}}
</span>

因此,我有一个metros列表,我正在过滤id匹配event.metro_id的地铁列表。问题是,对于我的场景,我知道总是会有1,只有1,匹配这个过滤器,使用ng-repeat只是为了得到那个元素感觉很愚蠢。有没有更优雅的方式来做到这一点。我的目标是在HTML模板中完成所有操作,并避免在角度控制器中放置更多代码。

1 个答案:

答案 0 :(得分:1)

如果您可以略微修改metros结构(仅支持您想要的内容),作为属性为id的集合,那么您可以在HTML中执行此操作:

<span ng-show="event.metro_id">
    {{metros[event.metro_id].timezone}}
</span>

我的意思是metros这样:

$scope.metros = {
  "25" : {
    "timezone" : 25,
    "foo" : "bar"
  },
  "35" : {
    "timezone" : 35,
    "foo" : "bar"
  }
}