gpt4 book ai didi

javascript - 用于 knockout 的动态可观察类

转载 作者:行者123 更新时间:2023-11-28 07:25:50 24 4
gpt4 key购买 nike

我正在开发一个与报告相关的项目,我需要构建大量使用 KO 呈现的报告。使用 AJAX 提取所有数据并更新模型。目前我正在编写大量的 js 函数来映射模型。像这样的东西:

function modelx(child) {
var self = this;
self.Name = ko.observable(child.Name);
self.Relation = ko.observable(child.Relation);
// hundred other properties
};
function modely(child) {
var self = this;
self.Age = ko.observable(child.Age);
self.Relation = ko.observable(child.Relation);
// hundred other properties
};

在 AJAX 调用之后,我正在填充可观察数组

for (var i = 0; i < jsn.length; i++)
{
VM.modelxlist().push(new modelx(jsn[i]));
}

for (var i = 0; i < jsn1.length; i++)
{
VM.modelylist().push(new modely(jsn1[i]));
}

是否有任何方法可以避免 modelx、modely...的定义,以便在 HTML 中使用时自动构建模型,而不会失去这种方法的好处?当然,可能存在一种极端情况,我可能无法从服务器获取特定属性,我应该在服务器端检查该属性。

此外,有时我可能需要添加额外的计算可观察量(只是为了更加灵活)

最佳答案

为什么不使用 knockout 制图插件:

http://knockoutjs.com/documentation/plugins-mapping.html

然后你会得到类似的东西:

var modelxInstance= ko.mapping.fromJS(child);

knockout 的 map 插件有几个,我最喜欢的其实就是这个:

https://github.com/LucasLorentz/knockout.mapper

原因是它更容易配置并且速度更快。

关于javascript - 用于 knockout 的动态可观察类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29664006/

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