我有类似的东西:
HTML
<div data-bind="??? with?" id="MainItem">
<input type="text" id="MainQuantity" value="12" data-bind="text: Quantity"> шт
<input type="button" value="Buy" data-bind="click: CartAdd" data-good-id="2134" />
</div>
脚本:
var MainViewModel = function () {
var self = this;
var items = [ { Id:2134, Quantity: 12 }, .. ]; // this data from json
self.CartAdd = function (data, event) {
var id = $(event.target).attr("data-good-id");
$.grep(self.items, function (i) { return i.id == id }).
each(function (i) { i.Quantity++; })
}
}
因此,我需要为我的#MainItem元素设置ViewModel,ViewModel应该来自于项目数组,由id选择,放在“data-good-id”属性中。
我的最终结果应该是,Quantity属性绑定到#MainQuantity元素
谢谢。
答案 0 :(得分:0)
我认为您不想使用带有绑定的。相反,您可以对项目执行foreach循环,然后访问父上下文中的 CartAdd 功能。例如:
<div data-bind="foreach: items">
<input type="text" id="MainQuantity" value="12" data-bind="text: Quantity">
<input type="button" value="Buy" data-bind="click: $parent.CartAdd" data-good-id="2134" />
</div>
请原谅任何错字,但我正在打电话。希望它有所帮助。