2016-07-05 94 views
1

我阅读了此处和所有网站上的所有内容,并且不理解我的问题。看起来它应该工作,但它不。我得到[Object object]作为选项。在knockout.js中选择下拉列表中的绑定选项和选项文本

的Html

<select data-bind="options: Cities, optionsText: Cities.CityNameRu"></select> 

敲除

function CityModel(data) { 
    this.CityId = ko.observable(data.CityId); 
    this.CityNameRu = ko.observable(data.CityNameRu); 
    this.CityName = ko.observable(data.CityName); 
} 

function IndexModel() { 
    var self = this; 
    self.Cities = ko.observableArray([]); 

    self.GetCities = function() { 
     $.ajax({ 
      type: "GET", 
      url: '/FetchCities', 
      dataType: "json", 
      success: function (data) { 
       self.SuccessfullyRetrievedModelsFromAjax(data); 
      }, 
      error: function (err) { 
       alert(err.status + " : " + err.statusText); 
      } 
     }); 
    }; 

    this.SuccessfullyRetrievedModelsFromAjax = function (models) { 
     ko.utils.arrayForEach(models, function (model) { 
      self.Cities.push(new CityModel(model)); 
     }); 
    }; 
    self.GetCities(); 
} 

JSON响应

[{"CityId":1,"CityName":"philadelphia","CityNameRu":"Филадельфия"},{"CityId":2,"CityName":"new-york","CityNameRu":"Нью Йорк"} 

回答

2

optionsText值是用于文本的每个options数组元素内的属性的字符串名称,因此您应该将绑定更改为:

<select data-bind="options: Cities, optionsText: 'CityNameRu'"></select> 
+0

非常感谢! –

相关问题