3

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

但是,Durandal 入门页面在“组织”部分下说明了这一点:

如果您展开 App 文件夹,您将找到整个 SPA 示例的源代码。这是您会发现的高级组织:

  • 应用程序
    • 杜兰达尔/
    • 视图模型/
    • 意见/
    • main.js

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

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

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

4

2 回答 2

6

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

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

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

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

于 2013-05-15T15:47:02.967 回答
5

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

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

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

于 2013-05-14T16:27:41.037 回答