2016-07-05 11 views
1

ここではすべてのものを読んでいますが、私の問題は分かりません。それはうまくいくはずですが、そうではありません。私はオプションとして[オブジェクトオブジェクト]を取得しています。バインディングのオプションとオプションテキスト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

ありがとうございました! –

関連する問題