【发布时间】:2016-03-25 04:57:09
【问题描述】:
您好,我是个新手,我试图让我的数组 cartItems 从下拉列表中自动选择它们的数量。这是我的代码:
查看
<div data-bind="foreach: cartItems">
<h3 data-bind="text: fullname"></h3>
<p data-bind="text: sku"></p>
<select data-bind="quantityDropdown: number"></select>
</div>
视图模型
var number = 50;
ko.bindingHandlers.quantityDropdown = {
update: function (element) {
for (var i = 1; i < number + 1; i++) {
var selectedQty = "";
for (var x = 0; x < self.cartItems().length; x++) {
var itemqty = parseFloat(self.cartItems()[x].qty, 10);
if (i === itemqty) {
selectedQty = " selected='selected'";
}
}
// Add each option element to the select here
$(element).append("<option value='" + i + "' " + selectedQty + " class='quantity'>" + i + "</option>");
}
}
};
现在我将两件商品放入购物车,然后出现下拉菜单。但是购物车中的两个项目的“选定”编号是相同的吗?我知道它是因为它不是特定于项目的。但我不确定如何在 Knockoutjs 中使其成为特定项目。
【问题讨论】:
-
为什么不使用
options绑定处理程序?此外,您不会使用您传递给quantityDrowndown处理程序的number参数...
标签: javascript jquery knockout.js