我正在试图找出Knockout,但是在我将一个新值推送到它所连接的可观察数组后,我无法获得下拉更新。请告诉我我做错了什么?
简单示例:
<!DOCTYPE html>
<html>
<head>
<script src="js/knockout-3.3.0.min.js"></script>
<script>
function ViewModel() {
var self = this;
self.items = ko.observableArray([
{'id':1,'name':'item #1'},
{'id':2,'name':'item #2'},
{'id':3,'name':'item #3'}
]);
self.addItem = function(id, name) {
self.items().push({'id':id,'name':name});
};
};
</script>
</head>
<body>
<select id="items"
data-bind="options: items,
optionsText: 'name',
optionsValue: 'id'"></select>
<script>
var vm = new ViewModel();
ko.applyBindings(vm);
vm.addItem(4, 'item #4');
</script>
</body>
</html>
答案 0 :(得分:2)
您正在将项目推送到基础数组而不是<table>
<thead>
<th>Sizes</th>
<th>Quantity</th>
</thead>
<tbody>
<tr>
<td><?=“echo sizes here";?></td>
<td><?=“echo quantity here";?></td>
<tr>
</tbody>
。要推送一个项目,以便Knockout知道某些东西被推了,你只需要这样做:observableArray
文档:http://knockoutjs.com/documentation/observableArrays.html