【发布时间】:2016-09-28 23:35:01
【问题描述】:
我对值转换器有疑问,我有一个数组 w/c 过滤非活动项目,当我编辑项目并将状态属性更改为“INACTV”时,表格不会改变。但是当在数组中添加/删除项目时,它会刷新,我的解决方法是创建一个绑定的 _signal 属性来强制过滤,有没有办法不这样做?
【问题讨论】:
标签: aurelia
我对值转换器有疑问,我有一个数组 w/c 过滤非活动项目,当我编辑项目并将状态属性更改为“INACTV”时,表格不会改变。但是当在数组中添加/删除项目时,它会刷新,我的解决方法是创建一个绑定的 _signal 属性来强制过滤,有没有办法不这样做?
【问题讨论】:
标签: aurelia
我不确定我是否理解过滤器应该如何工作。但如果它应该隐藏非活动项目,也许你可以做类似的事情
<tr repeat.for="item of ARRAY" if.bind="!item.STATUS_CD='INACTV'">
我不知道是否可以在“repeat.for”中放置一个值转换器。看起来很奇怪。
我希望这有助于将您推向正确的方向。
【讨论】:
不,目前没有直接、干净的方法可以做到这一点。 Repeat.for 使用 CollectionObserver 进行数组观察,它只响应 pop/push/reverse/shift/sort/splice/unshift。
只有在数组上调用这些方法之一时,观察者才会触发,并且数组会再次被馈送到您的ValueConverter。
您的信号解决方案非常干净。它比从数组中每个项目的STATUS_CD 属性上手动实例化的属性观察器刷新整个数组的替代方法更有效。
这就是我在一些类似情况下所做的,因为我不喜欢使用信号。但这只是偏好问题。
【讨论】: