【问题标题】:jsViews sort - how to automatically update the sort when a property changesjsViews sort - 如何在属性更改时自动更新排序
【发布时间】:2020-07-28 00:03:24
【问题描述】:

看看 jsViews 网站上的实时示例代码: https://www.jsviews.com/#jsvfortag@jsvsortfilterrange

如果我修改此行以包含排序:

{^{for members sort='name' start=start-1 end=end}} 

数组在明显添加项目后不会重新排序。

$.observable(team.members).insert(0, {name: "zzz this should be last"})

任何想法如何在插入项目后触发排序?

【问题讨论】:

    标签: jsviews


    【解决方案1】:

    当发生数组更改事件时,排序会刷新。如果您单击 [添加] 或单击 [x] 删除项目,则输入 sort='name' 将重新排序。但是您希望它在您更改项目中的名称属性时触发重新排序。

    但是你不希望它在输入字符时重新排序,所以首先要设置:

    <input data-link="name trigger=false" />
    

    有关触发器设置,请参阅文档here(在上面作为全局设置的本地覆盖完成)。

    接下来,您可以通过编写以声明方式使您的项目列表依赖于每个项目的名称文本

    {^{for members sort='name' depends='members.[]^name'}}
    

    depends='members.[]^name' 功能的文档很少,但它是一个通配符,用于响应数组中任何项目的单个属性更改(此处为 name 属性)。

    有关使用它的示例,请参阅https://www.jsviews.com/#samples/sort-filter@jsv-for

    您也可以使用depends='members.[]^*' 来响应任何数组项属性的更改。

    depends='members.**' 也可以工作,用于监听成员数组下​​的任何变化(参见文档here

    这是一个使用上述depends='members.[]^name' 方法的工作示例:

    https://jsfiddle.net/BorisMoore/b51tu27n/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-01
      • 1970-01-01
      • 2014-04-06
      • 1970-01-01
      • 1970-01-01
      • 2011-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多