0
ユーザーが単一項目をクリックするたびに一度にすべてのデータを保存する必要があります。そのため私はそれぞれのプロパティに対してsubscribe()を使用しました。 私の場合は、ApplyContting()メソッドをモデル関数の中から呼び出す必要があります。配列を埋めるたびにListを渡すのは良い考えだとは思わない。私にはたくさんのデータがあるからです。あなたはこれがko.pureComputed
のための理想的なユースケースでくださいノックアウトバインディングを使用してモデルクラスからViewModalメソッドを呼び出す必要があります
function UserViewModel(data) {
var self = this;
self.userID = data.userID;
self.userroles = ko.observableArray();
self.userroles.removeAll();
data.forEach(function(item) {
self.userroles.push(new UserRoleModal(item));
});
self.ApplySetting(data) {
//Ajax POST method to send List to server
}
}
function UserRoleModal(item) {
var self = this;
self.userID = ko.observable(item.Id);
self.CanEdit = ko.observable(item.CanEdit);
self.CanDelete = ko.observable(item.CanDelete);
self.canView = ko.observable(item.canView);
self.FullControl = ko.observable(item.FullControl);
self.canView.subscribe(function(newValue) {
// need to call ApplySetting method and pass List
});
}
<table class="table table-hover">
<thead>
<tr>
<th class="panel-body text-center"> CanEdit</th>
<th class="panel-body text-center"> CanDelete</th>
<th class="panel-body text-center"> canView</th>
<th class="panel-body text-center"> FullControl</th>
</tr>
</thead>
<tbody data-bind="foreach:userroles">
<tr>
<td class="panel-body text-center"><input type="checkbox" data-bind='checked: CanDelete' /></td>
<td class="panel-body text-center"><input type="checkbox" data-bind='checked: canView' /></td>
<td class="panel-body text-center"><input type="checkbox" data-bind='checked: FullControl' /></td>
</tr>
</tbody>
</table>
素晴らしい!!!私はそれを理解して実装することができました。非常に役立ちます。ありがとう:) – Chanet
私はサーバーに単一のアイテムを送信する必要がある場合、私は同じアプローチを使用して送信する方法を教えてください? – Chanet