KnockoutJS是否有功能,而我可以采取以下方式:
var myArray = ko.observableArray([
{ name: "Jimmy", type: "Friend" },
{ name: "George", type: "Friend" },
{ name: "Zippy", type: "Enemy" }
]);
Run Code Online (Sandbox Code Playgroud)
然后在"type"字段上选择distinct,产生如下所示的结果:
(pseudo code)
var distinct = myArray.distinct('type')
// Returns array of two arrays
// distinct[0] is an array of type=Friend
// distinct[1] is an array of type=Enemy
Run Code Online (Sandbox Code Playgroud)
我知道ko.utils.arrayGetDistinctValues,但这并不完全符合我的要求.我也知道我可以使用ko.utils.arrayGetDistinctValues写几个循环来得到我想要的东西,我只是想知道是否还有其他东西被KnockoutJS烘焙,我忽略了.
这是一个问题的后续跟进:KnockoutJS可排序组observableArray by field和conditionally sort
我正在努力实现另外两件事.首先,当嵌套列表项被拖动到另一个列表而父项为空时,我想删除父项.我通过创建一个afterMove函数并检查sourceParent长度是否为0来完成此操作.然后我查看路由以查看是否有任何空任务数组并相应地删除.我想知道这是否是一个有效的解决方案.我还必须删除任务,否则任务订阅会在删除计划任务时添加重复项.
其次,最重要的是基础对象(Task)具有order属性.我想将此绑定到可排序的顺序,以便在Scheduled列表中拖动任务时更新order属性.如何从可排序的回调中访问其他列表项的顺序?
请看下面这个小提琴.
任何帮助将不胜感激.