获取一个具有KnockoutJS提交绑定的对象。
当我提交某个表单时,我需要获取对象而不是元素。
Here, on jsFiddle,打开您的控制台,然后点击某个项目的add button
。您将收到Products object
,此处一切正常。但here, also in jsFiddle,当您点击add button
时,您的回复将是元素而不是对象 - 我需要该对象。
添加时查看此功能:
self.add = function (item) {
var i = self.products.indexOf(item);
self.products()[i].isAdded(true);
};
但是,当绑定为submit
时,item
参数与click
绑定返回的响应不同。
在我的实际应用程序中,有两个ViewModels like this。我认为这会更简单,但不幸的是,事实并非如此。
有人有任何想法吗?
答案 0 :(得分:2)
在提交时调用函数时,需要传入$data
对象。否则它将自动传递表单对象。
例如:
<!-- ko ifnot:isAdded -->
<form data-bind="submit: function() { $parent.add($data); }">
<button data-bind="ifnot:isAdded" class="btn btn-small action add">
<i class="icon-plus">Add</i>
</button>
</form>
<!-- /ko -->
以下是您的小提琴的工作更新:http://jsfiddle.net/G8zPT/4/