limitTo并以angularJs过滤

时间:2017-05-15 09:52:48

标签: angularjs

我希望使用ng-bindfilter中的数组中获取一个结果。我想做如下

<h1 ng-bind="item.Description as item in Items | filter: {id: someID}"></h1>

我想将h1设置为item.Description Items,其中someID来自下拉列表。这意味着,当我从下拉列表中进行选择时,h1是通过Items过滤SomeID来设置的。它就像h1 = Items.FirstOrDefault(x => x.id == someID).Description

2 个答案:

答案 0 :(得分:2)

此处的问题是ng-bind无法识别item in items语法。但正如您在标题中提到的那样,您可以将limitTong-repeat一起使用,以获得或多或少相同的结果。像这样:

<h1 ng-repeat="item in items | filter: {id: someId} | limitTo: 1">
    {{item.Description}}
</h1>

working example(为了简单起见,使用了someId的数字输入)

答案 1 :(得分:1)

如果您有下拉列表,那么您就知道选择的内容(通过ng-model)。您拥有的代码使用的是ng-bind,但它是ng-repeat的文本。你最好的选择是在控制器上有一个方法:

getItemDescription() {
  const selection = this.form.dropdown.selection; // Holds the dropdown 'selection' object (from the ng-model on your select dropdown);
  return Items.find((item) => item === selection).description;
}

然后您的HTML变为:

<h1 ng-bind="vm.getItemDescription()"></h1>