【问题标题】:Aurelia get value conventer results in viewAurelia 在视图中获取值转换器结果
【发布时间】:2016-02-14 01:18:32
【问题描述】:

我想获得值转换器的结果,该值转换器在我的视图中过滤数组以显示找到的结果数。

  <div repeat.for="d of documents|docfilter:query:categories">
    <doc-template d.bind="d"></doc-template>
  </div>

我既不想将此逻辑移动到我的控制器(以保持其清洁),也不想添加拐杖,例如从值控制器返回一些数据。

我想要什么:

所以,基本上我想要一些像角度优惠的东西: 如图所示hereng-repeat="item in filteredItems = (items | filter:keyword)"hereng-repeat="item in items | filter:keyword as filteredItems"

我得到了什么:

不幸的是,在奥里利亚:

d of filteredDocuments = documents|docfilter:query:categories

实际上是指d of filteredDocuments = 文档 |docfilter:query:categories,如果我添加括号或as,它将无法运行(因解析器错误而失败)。

所以,

有没有一种干净的方式将数据从数据过滤器中取出视图

最好的问候,亚历山大


UPD 1:当我谈到从值控制器返回一些数据时,我的意思是:

export class DocfilterValueConverter {
  toView(docs, query, categories, objectToPassCount) {
    ...
    objectToPassCount.count = result.length;
    ...
  });
});

UPD 2. 实际上,我错了:d of filteredDocuments = 文档 |docfilter:query:categories。它不能解决问题,但这段代码的作用是:

1) filteredDocuments = documents |docfilter:query:categories 在初始化时 2) d of filteredDocuments 这是对最开始的数组过滤的重复

【问题讨论】:

  • 您是否正在寻找有关如何实施DocFilterValueConverter 的建议?我不清楚这个问题
  • 没关系-我想我明白了-您想要对过滤后的文档数组的引用。
  • @JeremyDanyow 是的,实际上我只是在寻找一些优雅的方式来做到这一点,而不是像 UPD1 中描述的那样丑陋:)

标签: javascript aurelia


【解决方案1】:

假设您有一个外部元素,您可以将过滤后的项目填充到一个临时属性中,如下所示:

<!-- 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 绑定命令是否有帮助 - 像这样:&lt;div let.foo="some binding expression"&gt;

编辑

这里有一些更好的东西: https://gist.run/?id=1847b233d0bfa14e0c6c4df1d7952597

<template>
  <ul with.bind="myArray | filter">
    <li repeat.for="item of $this">${item}</li>
  </ul>
</template>

【讨论】:

猜你喜欢
  • 2018-01-19
  • 2022-01-20
  • 2019-02-08
  • 1970-01-01
  • 2016-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多