値にバインドされたドロップダウン リストがありSelectedFormat
ます。リスト オプションは、読み込み時に外部ソースから入力されdata.Format
、ID に基づいてビュー モデル オブジェクトと一致します。
jsフィドルを見てください
モデルが更新されたのに UI が正しく更新されない理由を誰か教えてください。Format.Name
ありがとう。
HTML:
<div data-bind="text:data.Format.Name"></div>
<select data-bind="
options:Controls,
optionsText: 'Name',
value: data.SelectedFormat"></select>
モデル:
var jsonData = {
Id: "abc-123",
Name: "Chicken Cheese",
Format: {
Id: 2,
Name: 'Medium',
Other: 'Bar'
}
};
var self = this;
self = ko.mapping.fromJS(data);
self.SelectedFormat = ko.observable(
//return the first match based on id
$.grep(vm.Controls,function(item){
return item.Id === self.Format.Id();
})[0]
);
//when changed update the actual object that will be sent back to server
self.SelectedFormat.subscribe(function (d) {
this.Format = d;
},self);