gpt4 book ai didi

javascript - 如何将 ko.mapping.fromJS 数组中的项目复制到 View 模型的另一个属性?

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

这里有一些曾经在 Knockout 2 上运行的现有代码中工作的东西,我正在重构到 Knockout 3。

viewmodel 的属性从 feed 初始化(简化代码):

$.ajax({
url: "/api/GetData",
data: {
clientId: clientId
},
type: "GET",
dataType: "json",
contentType: 'application/json; charset=utf-8',
traditional: true,
success: function (data) {
viewModel.periods(ko.mapping.fromJS(data)());
viewModel.selectedPeriod = ko.observable(viewModel.periods()[0]);
},
async: false
});

当我调试该值时,viewModel.selectedPeriod = 行有效,但绑定(bind)不起作用。

所以这失败了......

<ul data-bind="foreach: selectedPeriod.Years">
<li data-bind="text: Year"></li>
</ul>

...虽然这有效:

<ul data-bind="foreach: periods">
<li>
<ul data-bind="foreach: Years">
<li data-bind="text: Year"></li>
</ul>
</li>
</ul>

我在简化的 Fiddle 中重现了我的问题:https://jsfiddle.net/frankvaneykelen/w3opn442/12/

最佳答案

只需对您的代码进行一些更改...

viewModel.selectedPeriod(viewModel.periods()[0]); // observable method call instead of assigning

....

 <ul data-bind="foreach: selectedPeriod().Years">  // resolve the observable first ... 

可以在这里找到工作代码

https://jsfiddle.net/0cLtvqz0/4/

关于javascript - 如何将 ko.mapping.fromJS 数组中的项目复制到 View 模型的另一个属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33501684/

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