Javascript 如何使用YUI和Knockout JS将已删除项中的数据添加到表单中?
我有一个列表,使用敲除JS填充JSON数据 使用YUI委托,每个列表元素都是可拖动的,有几个拖放目标(使用YUIJavascript 如何使用YUI和Knockout JS将已删除项中的数据添加到表单中?,javascript,jquery,json,knockout.js,yui,Javascript,Jquery,Json,Knockout.js,Yui,我有一个列表,使用敲除JS填充JSON数据 使用YUI委托,每个列表元素都是可拖动的,有几个拖放目标(使用YUIdd拖放插件) 当我在其中一个删除目标上删除列表项时,我希望现有表单中填充来自所删除项数据的数据(即使列表中没有显示但数据模型中有数据)。如果没有删除任何内容,我仍然希望用户能够编辑表单并提交它 我的原意是: <ol class="timeline" data-bind="foreach: $data"> <li> <p da
dd拖放插件)
当我在其中一个删除目标上删除列表项时,我希望现有表单中填充来自所删除项数据的数据(即使列表中没有显示但数据模型中有数据)。如果没有删除任何内容,我仍然希望用户能够编辑表单并提交它
我的原意是:
<ol class="timeline" data-bind="foreach: $data">
<li>
<p data-bind="text: Title"></p>
</li>
</ol>
然后我有YUI dd:
YUI().use('dd-delegate', 'dd-drag','dd-drop-plugin', 'dd-proxy', function(Y) {
// Make all the .timeline items draggable
var draggables = new Y.DD.Delegate({
container: ".timeline",
nodes: "li"
});
// ... some setting up of the proxy elements, etc.
var dropNew = Y.one("#addStoryForm").plug(Y.Plugin.Drop);
dropNew.drop.on("drop:hit", function(e){
// The bit I'm missing
});
});
应使用删除的元素中的数据填充表单:
<form data-bind="with: droppedItem">
<input type="text" data-bind="value: Title" />
<input type="text" data-bind="value: SomethingElse" />
<button type="submit" />
</form>
我不使用YUI,但我在谷歌上搜索了一下。我猜应该是这样的:
dropNew.drop.on("drop:hit", function(e){
var element = e.drag, // YUI bit I'm unsure about
data = ko.dataFor(element);
droppedItem(data);
});
我敢肯定,当您这样做时,您在表单中所做的任何更改都会立即反映在列表中。如果您不想这样做,您必须做更多的工作:
data = ko.toJS(ko.dataFor(element));
droppedItem().Title(data.Title);
droppedItem().SomethingElse(data.SomethingElse);
data = ko.toJS(ko.dataFor(element));
droppedItem().Title(data.Title);
droppedItem().SomethingElse(data.SomethingElse);