2
私は子オブジェクトを持つビューモデルを持っています。子オブジェクトのプロパティのマッピングを定義するにはどうすればよいですか?ネストされた複合オブジェクトのノックアウトマッピング
public class ViewModel
{
public ManageComparatorSelectionsViewModel ManageComparatorSelectionsViewModel { get; set; }
public ManageComparatorItemViewModel CurrentComparatorItem { get; set; }
}
public class ManageComparatorSelectionsViewModel
{
public IList<Edition> Editions { get; set; }
public IList<Year> Years { get; set; }
}
public class ManageComparatorItemViewModel
{
public Edition ChosenEdition { get; set; }
public Year ChosenYear { get; set; }
}
私はノックアウト
var mapping = {
'ManageComparatorSelectionsViewModel.Editions': {
key: function (data) {
return ko.utils.unwrapObservable(data.Id);
}
},
'ManageComparatorSelectionsViewModel.Years': {
key: function (data) {
return ko.utils.unwrapObservable(data.Id);
}
}
};
var viewModel = ko.mapping.fromJS(viewModelData, mapping);
ko.applyBindings(viewModel);
ああ、多分私は、適切な構文を理解しません。これらの配列にIDを設定しようとしたのは、配列の値が変更されなくてもドロップダウンリストが不必要に更新されているように見えるからです。例えば、私がviewmodelを更新して1つの配列に値を追加すると、すべての配列とドロップダウンボックスがリフレッシュされます。 – djmc
モデルを選択リストにどのようにバインドしていますか?オプションで選択しますか?それは毎回リフレッシュを引き起こすからです。ほとんどの場合、ドロップダウンが表示されていない間に意味の後ろに更新されるので、問題はありません。しかし、それがうまくいかない場合は、テンプレートバインディングを使用することができます。メインポストを更新する方法を更新しました。 –