0
我已經申請綁定以下視圖模型如何使用基因敲除映射?
var groupDeleteViewModel = {
group: { Id: ko.observable(), Name: ko.observable(), Members: ko.observableArray() },
load: function (item) {
debugger
},
remove: function (item) {
groupDeleteViewModel.group.Id(item.Id());
groupDeleteViewModel.group.Name(item.Name());
groupDeleteViewModel.group.Members(item.Members());
$("#groupDelete").show();
},
cancel: function() {
$("#groupDelete").hide();
}
}
remove函數加載與已在項目被傳遞給刪除功能的數據視圖。
<div id="groupDelete" class="pop-window filter-view">
<h2>
Delete Group
</h2>
<table>
<tr>
<th>
Name
</th>
<td>
<span data-bind="text:group.Name" />
</td>
</tr>
<!--ko foreach: group.Members-->
<tr>
<th>
</th>
<td>
<div data-bind="text:Name" class="grey-border">
</div>
</td>
<td>
</td>
</tr>
<!--/ko-->
</table>
<span class="centeralign">
<input type="button" value="Delete" data-bind="click: remove" class="delete" />
<input type="button" value="Cancel" data-bind="click: cancel" />
</span>
</div>
我不想讓項目的每個元素映射到的每個元素groupDeleteViewmodel.group。我在代碼中的許多其他地方也做過這樣的事情,代碼非常混亂。我想用ko.mapping插件來做同樣的事情。
直到現在我曾嘗試是 -
remove:function (item){
var data = ko.mapping.toJS(item);
ko.mapping.fromJS(data, groupDeleteViewModel.group);
$("#groupDelete").show();
}
但是,這是行不通的。我真的不知道爲什麼。它應該理想地工作。 有人可以告訴在這種情況下使用ko.mapping的正確方法是什麼?
謝謝。
你是最棒的!萬分感謝。我只是想知道這是否也在他們的網站上? – Tushar 2012-07-28 17:01:41
他們說:'要通過映射插件創建一個視圖模型,用上面代碼中的viewModel的創建替換爲ko.mapping.fromJS函數,然後:'然後,每當您從服務器接收到新數據時,您可以通過再次調用ko.mapping.fromJS函數一步更新viewModel上的所有屬性。他們應該更清楚一點 – antishok 2012-07-28 20:13:34