【问题标题】:knockout.js mapping for new object (INSERT)新对象的 knockout.js 映射 (INSERT)
【发布时间】:2012-10-25 16:50:45
【问题描述】:

我想创建一个用于插入新车的页面。我正在使用 knockout.js 并想使用敲除映射。问题是,对于创建,为了获得映射结构,我需要进行 ajax 调用并返回新的和空的序列化对象。有什么可以阻止这个 ajax 调用吗?
(我也不想一个人写下整个模型结构)

【问题讨论】:

    标签: javascript knockout.js


    【解决方案1】:

    如果您不想创建对象的 JavaScript 版本并且不想通过 ajax 调用来获取它,那么 Knockout 不可能神奇地知道对象的结构。

    您可以做的是使用Fiddler 来拦截AJAX 调用。然后 Fiddler 将向您展示对象的 JSON 表示。您可以将其复制粘贴到您的 JavaScript 中,以便您拥有模型的“缓存”版本以供首次使用。将此传递给 Knockout,Knockout 将为您创建对象。

    当然,缓存版本会与您的服务器模型不同步(同样的情况也可能发生在纯 JavaScript 模型中)。这只是您必须手动处理的事情。

    解决此问题的一种方法是使用 T4 模板在编译时生成一些代码。通过反射,您可以使用模型的最新版本生成 .js 文件。

    【讨论】:

    • 使用“缓存版本”的问题是模型更改不会反映在 JavaScript 模型上。
    • 如果我进行ajax调用,是否值得使用映射插件?
    • 是的。映射插件为您的对象创建淘汰赛 observables。您可以配置映射插件来自定义映射。
    猜你喜欢
    • 2012-02-06
    • 2012-06-12
    • 2019-09-19
    • 2013-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-04
    相关资源
    最近更新 更多