【问题标题】:Knockout viewmodel concept淘汰视图模型概念
【发布时间】:2013-01-15 17:43:03
【问题描述】:

我无法找到以下问题的答案...请给我一个建议。
我有一个表单,它是基于通过 ajax 请求从服务器获取的元数据动态构建的。它获取大约 20 个显示数据值和大约 10 个用户输入字段。因此,展示视图模型和后视图模型是不同的。填充的字段也通过 ajax 发回。
如何正确应用 Knockout 视图模型概念?
1. 我制作了一个视图模型来显示和发布数据。在这种情况下,AJAX 调用会将大量冗余数据回传到服务器。选项:我可以发送一个只包含输入字段的新对象,但它在 KO 概念中看起来不太好。
2. 我制作了一个仅包含用户输入字段的视图模型。要显示的只读字段不在 KO 视图模型中,而是使用常见的 jQuery 方法填充(因此我们再次脱离了纯 KO 样式)
3. 还是?
我很欣赏你的想法。

【问题讨论】:

    标签: mvvm knockout.js


    【解决方案1】:

    Knockout 提供了将 MVVM 模式应用于客户端 (HTML5/Javascript) 应用程序的能力。您的 JavaScript 视图模型应提供操作视图或它负责的视图所需的所有数据和属性,包括用户输入字段和仅显示字段。

    一旦您将某些内容发布回服务器,您将离开 MVVM 世界并进入另一层以执行某些操作。因此,我认为最好制定只包含服务器完成请求所需的数据的 JSON。在服务器端,您可能有一个带有验证属性或其他任何东西的 C# 模型,但是,再一次 - 您并没有尝试在那里遵守 MVVM 模式。

    希望这会有所帮助。如果需要,我很乐意详细说明。

    【讨论】:

    • 哇,好干净。谢谢!那么,如何创建 JSON 对象以发布到 setrver?手动映射?
    • 我通常创建或获取一个包含我需要的数据的 JS 对象,然后使用 JSON.stringify 或类似的方法来创建 JSON。根据您需要发送的数据,您可能已经拥有或至少部分包含在 JS 视图模型的复杂属性中。
    猜你喜欢
    • 1970-01-01
    • 2013-07-08
    • 2012-11-09
    • 2012-11-29
    • 2015-07-07
    • 1970-01-01
    • 1970-01-01
    • 2012-07-25
    相关资源
    最近更新 更多