我有一个可排序列表列表,我将一些项目拖到这些列表中。
我需要知道我保存项目的列表的ID,以便我可以创建一个链接记录并将其保存在服务器端。
每个可排序列表的DOM元素名称等于该列表的ID。
令人敬畏的knockoutjs可排序绑定有arg.sourceParentNode但不是arg.targetParentNode。我如何获得targetParentNode? p>
谢谢!
我正在构建一个将事物链接在一起的屏幕,基本上只是创建数据库表之间的关系并将记录插入到多对多表中。我希望这很简单,我在这里失踪......
我不可能是唯一一个知道哪个DOM元素对应哪个observableArray有用的人,所以我希望我在这里找不到简单的东西,而且有人可以轻松解决这个问题。我总是觉得奇怪的是,淘汰赛没有一个DomElementForObservable函数,但在过去我总能解决这个问题并且不需要它。在这种情况下,我很难过。有什么想法吗?
获取可观察对象的DOM元素的一般方法非常棒。
答案 0 :(得分:1)
一个好的选择是尝试将此功能放在视图模型中,而不是依赖于DOM元素。例如,您可以将id
附加到observableArray而不是DOM元素。喜欢:
this.myItems = ko.observableArray();
this.myItems.id = "myId";
然后,您可以查看arg.targetParent.id
。
或者,您可以在您的viewmodel中订阅,如:
this.myItems.subscribe(function(newValue) {
this.createLink("myItems", newValue); //or whatever you need to do in your code
}, this);
beforeMove
和afterMove
处理程序将event
和ui
对象作为第二个和第三个参数传递,因此您可以检查它们并找到它的父级元件。
Knockout没有从observable获取DOM元素的通用方法,因为observable可能绑定到许多元素。希望这会给你一些想法。