gpt4 book ai didi

javascript - 如何拼接ko.compateds

转载 作者:行者123 更新时间:2023-12-02 14:28:25 30 4
gpt4 key购买 nike

我得到了这两个 ko.compulateds 列表,我想在其中拖放,但也使用按钮移动以删除添加到列表的内容。

但是我无法让它们同时使用拖放和按钮功能。

对于拖放,我使用 Ryan Niemeyers 出色的可排序库。

我想我需要使我的计算结果可写,但这就是我陷入困境的地方,并且似乎无法摆脱计算结果的错误“splice is not a function”。

因此通过拖放进行排序失败。

这是其中一台计算机:

         this.availableTexts = ko.computed({
read: function(){
return ko.utils.arrayFilter(self.texts(), function(text) {
return text.sceneID() === null;
})
},
write: function(value){
return value;
},
owner: this
});

完整 fiddle :http://jsfiddle.net/AsleG/yLvrp7zz/

最佳答案

Niemeyer 的可 knockout 排序库与 splice 一起内部对项目数组进行排序 ( source )。我相信它根本无法在计算上工作,即使它返回一个数组并且具有正确的写入方法......

我建议使用 visible 绑定(bind)来隐藏单个项目。您必须公开 projectID 或映射您的项目以包含计算结果,如下所示:

var projectID = 1;
self.allScenes = ko.observableArray(scenes.map(function(scene) {
return Object.assign({}, scene, {
isVisible: ko.computed(function() {
return scene.projectID === projectID;
});
});

或者,在 View 模型中:

self.projectId = 1;

在 HTML 中:

<li data-bind="visible: projectID === $parent.projectId"> ... </li>

关于javascript - 如何拼接ko.compateds,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38046315/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com