jsViews 排序 - 如何在 属性 更改时自动更新排序
jsViews sort - how to automatically update the sort when a property changes
只需查看 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"})
知道如何在插入项目后触发排序吗?
当有数组更改事件时,排序会刷新。如果您单击 [添加] 或 [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'
方法的工作示例:
只需查看 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"})
知道如何在插入项目后触发排序吗?
当有数组更改事件时,排序会刷新。如果您单击 [添加] 或 [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'
方法的工作示例: