2013-09-26 78 views
0

我正在寻找一种方法来更新选择元素的optionsText后,我从ajax调用收到我的数据。knockout.js更新optionstext从ajax调用获取数据后

我有我认为是一个相当标准的选择元素与多个关联的字段和复选框的视图设置。

在我做ajax调用来获取数据之前,我使用optionsText属性来设置“加载数据...”选项,一旦数据调用完成,我想删除optionsText并将select选项设置为列表中第一个“真实”的,也就是从我的数据调用中返回的数组中的第一个元素。

如果不删除optionsText,我想至少将它改为“选择foobar”,以便用户知道数据调用已完成。

任何人有任何想法?谢谢!

回答

1

你只需要改变的选项模型的值作为这里所做

var vm=function(){ 
    var self=this; 
    self.selected=ko.observable(); 
    self.options=ko.observable([{txt:'Loading',val:-1}]); 
    self.status=ko.observable('Loading'); 
    self.init=function(){ 
     setTimeout(function(){ 
      self.status('Loaded'); 
      self.options([ 
       {txt:'First Option',val:0},{txt:'2nd Option',val:1}]); 
     },1000); 
    } 
    self.init(); 
} 
ko.applyBindings(new vm()); 

http://jsfiddle.net/dhanasekaran/SRLvj/