【问题标题】:Aurelia Value Converters using array使用数组的 Aurelia 值转换器
【发布时间】:2016-09-28 23:35:01
【问题描述】:

我对值转换器有疑问,我有一个数组 w/c 过滤非活动项目,当我编辑项目并将状态属性更改为“INACTV”时,表格不会改变。但是当在数组中添加/删除项目时,它会刷新,我的解决方法是创建一个绑定的 _signal 属性来强制过滤,有没有办法不这样做?

【问题讨论】:

    标签: aurelia


    【解决方案1】:

    我不确定我是否理解过滤器应该如何工作。但如果它应该隐藏非活动项目,也许你可以做类似的事情

    <tr repeat.for="item of ARRAY" if.bind="!item.STATUS_CD='INACTV'">
    

    我不知道是否可以在“repeat.for”中放置一个值转换器。看起来很奇怪。

    我希望这有助于将您推向正确的方向。

    【讨论】:

    • 我尝试了你的建议。但它仅适用于第一次填充数组。如果我删除数组中的项目,表格视图会刷新。但我的目的是将属性 STATUS_CD 更改为 INACTIVE,因此该项目将隐藏在视图中。我知道使用值转换器是一项肮脏的工作。除了使用它还有其他建议吗?谢谢
    【解决方案2】:

    不,目前没有直接、干净的方法可以做到这一点。 Repeat.for 使用 CollectionObserver 进行数组观察,它只响应 pop/push/reverse/shift/sort/splice/unshift。

    只有在数组上调用这些方法之一时,观察者才会触发,并且数组会再次被馈送到您的ValueConverter

    您的信号解决方案非常干净。它比从数组中每个项目的STATUS_CD 属性上手动实例化的属性观察器刷新整个数组的替代方法更有效。 这就是我在一些类似情况下所做的,因为我不喜欢使用信号。但这只是偏好问题。

    【讨论】:

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