gpt4 book ai didi

knockout.js - knockout : partial mapping of arrays

转载 作者:行者123 更新时间:2023-12-01 12:55:11 25 4
gpt4 key购买 nike

看看this small example .

<select data-bind="options: Days, optionsText: 'title'"></select>
<input type="button" value="update" data-bind="click: update" />

<script type="text/javascript">
var Days = {'Days': [{"id":1,"title":"Monday"},{"id":2,"title":"Tuesday"},{"id":3,"title":"Wensday"}]};

var DaysUpdate = {'Days': [{"id":3,"title":"Wednesday"},{"id":4,"title":"Thursday"},{"id":5,"title":"Friday"}]};

var mapping = {
'Days': {
key: function(data) {
return ko.utils.unwrapObservable(data.id);
}
}}

var viewModel = {
Days: ko.observableArray(),
update: function() {
ko.mapping.fromJS(DaysUpdate, mapping, viewModel);
}
}

ko.mapping.fromJS(Days, mapping, viewModel);


ko.applyBindings(viewModel);

</script>

在此示例中,数据被部分映射。首先来自 Days 对象,然后(通过单击更新按钮)来自 DaysUpdate 对象。第二次更新从数组中删除“Monday”和“Tuesday”对象。我如何让他们留下来?

附言。感谢 Mark Robinson 提供结构更好的示例。

最佳答案

这是映射插件的常见问题。目前无法使用插件本身执行此操作。这一直困扰着我一段时间。该插件假定您给它的数组是数组的新内容,因此会删除其他项目。

目前我知道的唯一解决方案是循环遍历集合并手动映射每个元素。

http://jsfiddle.net/madcapnmckay/5878E/

有一天,我会抽空尝试提出一个合适的解决方案,并向 map 插件人员发送拉取请求。

希望这对您有所帮助。

关于knockout.js - knockout : partial mapping of arrays,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10124756/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com