我以前从未在淘汰赛中这样做过,所以我肯定错了。
我在这里有一个显示问题的jsfiddle:http://jsfiddle.net/pdavis68/xebq7/
这是相关的HTML:
<!-- ko foreach: Parameters -->
<select data-bind="attr: { id: Name }">
<!-- ko foreach: $parent.ValidValues -->
<option data-bind="value: Value, text: Label"></option>
<!-- /ko -->
</select>
<!-- /ko -->
和相关的Javascript:
var ViewModel = function () {
var self = this;
self.Parameters = ko.observableArray();
}
var currentItem;
$(document).ready() {
currentItem = new ViewModel();
ko.applyBindings(currentItem);
currentItem.Parameters.push(
[{"Name":"WarehouseCode", "ValidValues":
[{"Label":"Warehouse 1-- (01)","Value":"01"},
{"Label":"Warehouse 2 -- (02)","Value":"02"}]}]);
}
我的目标当然是使用ValidValues来填充<option>
中的<select>
标记,正如您从jsFiddle中看到的那样,这种情况并未发生。
如何更正我的HTML?
感谢。
答案 0 :(得分:0)
你有几个问题:
您的document.ready(...)
语法错误。您希望该块看起来像:
$(document).ready(function () { ... }); // <-- note the "function"
您正在将数组推入可观察的项目数组中。您确实希望使用新值更新可观察数组:
currentItem.Parameters([{
"Name": "WarehouseCode",
"ValidValues": [{
"Label": "Warehouse 1-- (01)",
"Value": "01"
}, {
"Label": "Warehouse 2 -- (02)",
"Value": "02"
}]
}]);
你在小提琴中既没有包括KnockoutJS也没有jQuery。