【问题标题】:Why is there no suggested "model" folder in a Durandal app?为什么 Durandal 应用程序中没有建议的“模型”文件夹?
【发布时间】:2013-05-08 23:25:31
【问题描述】:

我正在开发 Durandal SPA,并且设置了一些视图和视图模型。但是,我认为 MVVM 架构也会涉及“模型”部分(模型、视图、视图模型——对吗?)。

但是,Durandal Getting Started page 在“组织”部分下这样说:

如果你展开 App 文件夹,你会找到整个源 水疗样品。这是您将找到的高级组织:

  • 应用程序
    • 杜兰达尔/
    • 视图模型/
    • 观看次数/
    • main.js

此结构中缺少“模型”文件夹。您应该将模型放在 Durandal 应用程序的什么位置?

我查看了其他一些示例应用程序,但我找不到我查看过的任何示例应用程序的“模型”文件夹(或模型所在的任何位置)。

在我看来,“models”文件夹(不存在)是 Durandal 应用程序的关键部分。然而,它并不存在——因此,我质疑我对 Durandal(和 MVVM 应用程序)是如何设计的理解。肯定有一些我不理解的东西......有人可以告诉我 Durandal 应用程序的预期结构,以及将模型对象放在哪里?

【问题讨论】:

    标签: mvvm durandal


    【解决方案1】:

    答案是,Durandal 只为您提供运行所需的结构,仅此而已。它使用一个viewmodelsviews 文件夹,所以它告诉你做一个。 Durandal 不使用models 文件夹,但您使用。

    我在我的项目中制作了一个。如果您觉得它适合您的开发风格,您可以并且应该自己制作一个。

    请注意,它也不会为非视图模型的代码留下任何位置,这些代码肯定会存在于任何应用程序中。我强烈建议为此创建一个modules 文件夹。

    不要认为您可以或应该做的事情只有您在 Durandal 教程中看到的那些事情。你是开发者。您必须在 Durandal 提供的基础上进行构建,这意味着您要做出自己的选择。

    【讨论】:

    【解决方案2】:

    在我的应用程序中,模型始终由应用程序发出请求的 REST 服务或 WebAPI 定义。我不需要在应用程序代码中定义这些模型。模型由服务器/服务端定义。

    当使用 Breeze 之类的东西时,模型只是数据库中实体模型的 JSON 表示。

    如果您觉得在应用程序代码中定义这些模型更自在,我们非常欢迎您。如果我做了类似的事情,我会按照你的建议把它放在App\models 文件夹中。不过,我认为您大部分时间都不需要这样做。

    【讨论】:

      猜你喜欢
      • 2020-08-07
      • 2011-03-20
      • 1970-01-01
      • 1970-01-01
      • 2011-08-30
      • 1970-01-01
      • 1970-01-01
      • 2010-12-21
      • 1970-01-01
      相关资源
      最近更新 更多