gpt4 book ai didi

javascript - KnockoutJS 嵌套映射

转载 作者:行者123 更新时间:2023-12-02 17:20:44 27 4
gpt4 key购买 nike

我正在使用 KnockoutJS 和映射插件来创建用户界面。当页面加载时,它立即调用:

$('document').ready ( function () {
$.getJSON(some-url, function (data) {
viewModel = new ViewModel(data);
ko.applyBindings(viewModel);
});
});

效果很好。 some-url 处的服务以以下形式的 JSON 值进行响应:

{ current: null
, ids: [0,1,2,3,4,5]
}

我在 ViewModel 类中创建了一个方法,该方法应该根据数组中的第一个 id 填充当前的可观察值:

self.head = function () {
if (self.promptIds().length != 0) {
var nextId = _.head(self.promptIds());
self.promptIds(_.tail(self.promptIds()));
$.getJSON("some-url" + "/" + nextId, function (data) {
self.current = ko.mapping.fromJS(data);
});
}
}

请注意,我将 self.current 设置为等于 ko.mapping 的结果。所以我几乎重写了之前的可观察结果。这解释了为什么我的绑定(bind)没有更新,即使 self.current 已定义。

那么我该如何更新 viewModel.current observable 呢?我想要的只是解析 ajax 查询的响应并将其设为子 viewModel。

最佳答案

我认为是:

self.current(ko.mapping.fromJS(data));

关于javascript - KnockoutJS 嵌套映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23988788/

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