gpt4 book ai didi

mapping - Knockout Mapping - 在 JSON 加载后重新绑定(bind)数据

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

我正在使用带有映射插件的 Knockout。
在服务器返回 JSON 数据之前初始化页面有问题。

在场景中一切正常:
1. 获取 JSON
2.执行VM = ko.mapping.fromJS(result);3.执行ko.applyBinding(VM);
但是,如果 JSON 需要一些时间才能返回(例如 10 秒),我的页面需要在返回 json 之前进行初始化。但如果我制作 ko.applyBinding(VM);使用空 VM ( let say VM = {}; ) 而不是调用 JSON,然后再次重新绑定(bind)它 - 它不起作用。

所以我的问题是 - 如何用 knockout 重新绑定(bind)模型?我不想更改单个 observable 的值,而是重新绑定(bind)整个 VM( View 模型),因为我的数据结构需要从 JSON 映射 - 在返回 JSON 之前它是未知的。

最佳答案

我相信您所描述的问题是事情不会立即在您的模板中呈现(并且实际上会给出错误),并且当来自服务器的数据到达时,该错误会阻止重绘。

如果是这种情况,我通常处理这个问题的方法是让一个可观察的知道数据何时加载,并将有问题的模板代码包装在 if 中。基于这个可观察的。

更新:您更有可能替换 VM 的值。这不再是绑定(bind)到界面元素的对象。

您可以使用 ko.mapping.fromJS 的替代形式称呼。

ko.mapping.fromJS(result, {}, VM);

关于mapping - Knockout Mapping - 在 JSON 加载后重新绑定(bind)数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10977452/

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