私は銀色のデータフォームに似たデータグリッドを使用してデータフォーム機能を作成しようとしています。ノックアウト選択アイテムの変更
私はグリッドから選択した項目を表示するためのdivがあります
this.setSelectedEntry = function (id) {
vm.selectedEntry = vm.data()[id];
}
選択した項目は次のとおりです。私の見解モデルの
$('#readDate').attr('data-bind', 'text : selectedEntry.expenseDate');
$('#readDesc').attr('data-bind', 'text : selectedEntry.expenseDescription');
$('#readAmount').attr('data-bind', 'text : selectedEntry.expenseAmount');
を、私が選択した項目を設定する機能を持っています
function ExpenseEntry(Id, expenseDate, expenseDescription, expenseAmount) {
this.Id = Id;
this.expenseDate = ko.observable(expenseDate);
this.expenseDescription = ko.observable(expenseDescription);
this.expenseAmount = ko.observable(expenseAmount);
}
ただし、selectedEntryオブジェクトを変更すると、UIは更新されませんated。これはUIがオブジェクトのメンバーにバインドされ、オブジェクト自体にバインドされないためですか? selectedEntryに直接バインドする方法はありますか?
ありがとうございます。私が理解できなかったことの1つは、これを行うときにselect関数にアイテムがどのように渡されているかです:click:$ root.select? –
私はノックアウトの "クリック"バインディング(http://knockoutjs.com/documentation/click-binding.html)を使用しています。クリックイベントが発生すると、Knockoutはバインディングにリストされている関数を呼び出し、現在のデータ項目を最初のパラメータとして渡します。私の場合は、ルートビューモデルにある 'select'関数を呼び出します。 –