从ajax调用获取数据后,knockout.js更新optionstext

时间:2013-09-26 20:49:42

标签: javascript ajax data-binding knockout.js

我正在寻找一种方法来在我从ajax调用中收到数据后更新select元素的optionsText。

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

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

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

有人有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分: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/