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