单个对象的ng-repeat功能

时间:2014-01-22 00:47:05

标签: javascript angularjs angularjs-ng-repeat

这可能听起来像一个奇怪的问题(对不起,Angular的新手),但我需要ng-repeat的功能,但我只需要绑定到单个项目。我目前正在使用转发器,但将数组过滤到这样的一个项目......

<div ng-repeat="item in uploader.queue | filter: {fieldName:'design'}">
    <div ng-thumb="{ file: item.file, height: 100 }"></div>
</div>

这段代码完美无缺,但我不禁想到我不应该在这里使用转发器,因为我只绑定了一个项目。

2 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

{{(uploader.queue | filter:{fieldName: 'design'})[0].file}}

Filter返回一个数组。所以我们获取返回的数组,然后从第一个条目获取文件属性(因为你只想要第一个)。

如果文件绑定是单向的(“@”),我怀疑你可以这样做:

<div ng-thumb="{file: {{(uploader.queue | filter:{fieldName:'design')[0].file}}, height: 100}"></ng-thumb>

demo fiddle

答案 1 :(得分:0)

Is there a chance your filter will ever cause more than one item to be valid?

如果是,那么你所做的是绝对正确的。

如果不是,那么你所做的并不一定是错的,因为你仍在按照集合行事。

Will the filtered item will ever be different? In what circumstances does it change?

如果它永远不会改变,那么你应该真正过滤控制器中的数据,只是让视图可以使用$scope.filteredItem