这可能听起来像一个奇怪的问题(对不起,Angular的新手),但我需要ng-repeat的功能,但我只需要绑定到单个项目。我目前正在使用转发器,但将数组过滤到这样的一个项目......
<div ng-repeat="item in uploader.queue | filter: {fieldName:'design'}">
<div ng-thumb="{ file: item.file, height: 100 }"></div>
</div>
这段代码完美无缺,但我不禁想到我不应该在这里使用转发器,因为我只绑定了一个项目。
答案 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>
答案 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
。