推出淘汰可观察阵列不会更新选择?

时间:2015-09-26 22:15:13

标签: knockout.js

我正在试图找出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> 

1 个答案:

答案 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