3
我有一個複雜的對象我想要傳遞到ko.mapping.fromJS
,我的問題是,我只想要一個場可觀察到,但其他性能給人的印象null或不存在基於我嘗試過的方法。複雜對象傳遞到ko.mapping.fromJS
我創建了一個的jsfiddle here來說明我的問題。我希望內部對象能夠被複制,因爲我不需要它是可觀察的;考慮到這些我將擁有的數量,我不想額外的開銷。
這樣做的目標是使qty
可編輯,但inner.name
在文本框中保持不變。這意味着一個是可觀察的,而另一個不是。
如果任何人有這樣做的另一種方式,不涉及我很想聽到它的映射。我的視圖模型有很多功能,並且數據來自AJAX調用。
function viewModel() {
var self = this;
self.slots = ko.observableArray([]);
self.load = function() {
ko.mapping.fromJS(
[
{ 'qty': 1, 'inner': { 'name': 'thing'} },
{ 'qty': 2, 'inner': { 'name': 'stuff'} }
],
{ 'include': ['qty'], 'ignore': ['inner.name'] },
self.slots);
}
};
ko.applyBindings(new viewModel());
<button data-bind="click: load">Go</button>
<ul data-bind="foreach: slots">
<li>
<span data-bind="text: qty"></span> <span data-bind="text: inner.name"></span><input data-bind="value: qty" /><input data-bind="value: inner.name" />
</li>
</ul>
完美,謝謝!我曾嘗試複製以及創建,但我沒有意識到我可以按照您指定的方式進行復制。謝謝。 – PCasagrande 2013-04-04 03:04:16