0

値にバインドされたドロップダウン リストがあり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);
4

1 に答える 1