2015-09-26 60 views
1

我试图找出淘汰赛,但我无法得到下拉更新后,我推新的价值观察到的阵列,它连接到。请告诉我我做错了什么?推倒可观察数组不会更新选择?

简单的例子:

<!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> 

回答

2

您正在推动的项目为基础数组,而不是到observableArray。为推动项目,这样淘汰赛知道的东西推你只需要做到这一点:self.items.push({'id': id, 'name': name});

文档:http://knockoutjs.com/documentation/observableArrays.html

+0

谢谢你,就这样办吧! –