我想获得value conventer的结果,在我的视图中过滤数组,以显示找到的结果数。
<div repeat.for="d of documents|docfilter:query:categories">
<doc-template d.bind="d"></doc-template>
</div>
我既不想将此逻辑移动到我的控制器(以保持其清洁),也不想添加拐杖,例如从值控制器返回一些数据。
所以,基本上我想要角度优惠:
如图所示here:
ng-repeat="item in filteredItems = (items | filter:keyword)"
或here:ng-repeat="item in items | filter:keyword as filteredItems"
不幸的是,在奥里利亚:
d of filteredDocuments = documents|docfilter:query:categories
实际上意味着d of
filteredDocuments =文档 |docfilter:query:categories
,如果我添加括号或as
,它就不会运行(使用解析器失败)误差)。
是否有一种简洁的方法可以从数据过滤器中获取数据?
此致,亚历山大
export class DocfilterValueConverter {
toView(docs, query, categories, objectToPassCount) {
...
objectToPassCount.count = result.length;
...
});
});
d of
filteredDocuments = documents |docfilter:query:categories
。它没有解决问题,但这段代码的作用是: 1)初始化filteredDocuments = documents |docfilter:query:categories
2)d of filteredDocuments
这是在最开始的数组中重复过滤
答案 0 :(得分:9)
假设你有一个外部元素,你可以将过滤后的项目填充到这样的ad-hoc属性中:
<!-- assign the filtered items to the div's "items" property: -->
<div ref="myDiv" items.bind="documents | docfilter : query : categories">
<!-- use the filtered items: -->
<div repeat.for="d of myDiv.items">
<doc-template d.bind="d"></doc-template>
</div>
</div>
我知道这不是你正在寻找的,但它会完成这项工作。我正在研究添加let
绑定命令是否有帮助 - 如下所示:<div let.foo="some binding expression">
这里的东西更好一些:
start
<template>
<ul with.bind="myArray | filter">
<li repeat.for="item of $this">${item}</li>
</ul>
</template>