在knockout.js中填充select
Populating select in knockout.js
我在淘汰赛表中有一个数量选择选项,但我想根据可用库存设置最大限制。
假设我有以下条目
的值ID = 1
stock = 8
我想用数字1-stock填充数量字段,在本例中是1-8。数量总是小于或等于库存。
function ItemEntry(ID, stock, quantity) {
var self = this;
self.ID= ID;
self.stock= stock;
self.quantity = quantity;
}
// viewmodel
function EntryViewModel() {
var self = this;
self.itemNumbers = ko.observableArray([
new ItemEntry("1", 8, QUANTITY HERE!) //initial starting values
]);
self.removeItem = function(item) { self.itemNumbers.remove(item) }
}
//custom binding for dropdown outside of models
ko.bindingHandlers.quantityDropdown = {
update: function(quantityDropdown, stock, EntryViewModel) {
var quantity = ko.utils.unwrapObservable(stock());
for(var i = 0; i < stock(); i++)
{
$(quantityDropdown).append('<option value="' + i + '">' + i + '</option>');
}
}
};
ko.applyBindings(new EntryViewModel());
这是HTML
<table border="1">
<thead><tr>
<th>ID</th><th>Stock</th><th>Quantity</th><th></th>
</tr></thead>
<tbody data-bind="foreach: itemNumbers">
<tr>
<td data-bind="text: ID"></td>
<td data-bind="text: stock"></td>
<td><select data-bind="quantityDropdown: quantity"></select></td>
<td><a href="#" data-bind="click: $root.removeItem">Remove</a></td>
</tr>
</tbody>
</table>
在视图模型代码之外创建自定义绑定:
ko.bindingHandlers.quantityDropdown = {
update: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
var quantity = ko.utils.unwrapObservable(valueAccessor());
for(var i = 1; i < quantity + 1; i++)
{
// Add each option element to the select here
$(element).append('<option value="' + i + '">' + i + '</option>');
}
}
};
然后将绑定更改为:
<td><select data-bind="quantityDropdown: stock"></select></td>
相关文章:
- AngularJS-jquery插件SelectBoxIt在ng个选项完成填充select之后
- 尝试使用 JQUERY 使用 JSON 数据填充 Select
- Javascript使用数组填充select选项
- 使用OptGroup从两个分离的JSon对象JQuery填充Select
- 动态填充select标记无效
- 用JSON值填充select
- jQuery加载未填充select元素
- 用ajax和angular填充select选项
- 如何用javascript中的json数据填充select列表
- 试图用Javascript/jQuery填充SELECT菜单,但脚本没有;不起作用
- 使用JavaScript填充select's选项并删除它们
- 循环遍历对象并使用选项和值填充Select元素
- 在knockout.js中填充select
- 在angularjs中填充select
- Angular JS动态填充Select字段的选项
- Datatable jquery插件:填充select来过滤通过ajax获得的数据
- 如何在javascript中填充select元素的选项
- 使用嵌套的JSON对象填充Select标记
- Javascript改进了填充select的ajax调用
- 在JQuery中用JSON填充SELECT