我正在开发Durandal SPA,我已经设置了一些视图和视图模型。但是,我认为MVVM架构还涉及“模型”段(模型,View,ViewModel - 对吧?)。
但是,Durandal Getting Started page在“组织”部分中说明了这一点:
如果展开App文件夹,您将找到整个文件夹的来源 SPA样品。这是您将找到的高级组织:
- 应用
- 迪朗达尔/
- 的ViewModels /
- 视图/
- main.js
此结构中缺少“模型”文件夹。你应该把你的模型放在Durandal应用程序的哪个位置?
我查看了其他一些示例应用,但我找不到我所评论的任何示例应用的“模型”文件夹(或模型所在的任何位置)。
“models”文件夹(不存在)在我看来是Durandal应用程序的关键部分。但是,它不存在 - 因此,我质疑我对Durandal(和MVVM应用程序)的设计理解。肯定有一些我不理解的东西......有人可以填写Durandal应用程序的预期结构,以及放置模型对象的位置吗?
答案 0 :(得分:6)
答案是Durandal只为您提供运行所必需的结构,仅此而已。 使用 viewmodels
和views
文件夹,因此它会告诉您创建一个文件夹。 Durandal不会使用models
文件夹。
我在我的项目中做了一个。如果你觉得它适合你的开发风格,你可以而且应该自己制作一个。
请注意,它也没有为不是viewmodel的代码留下任何位置,这肯定会存在于任何应用程序中。我高度建议为此目的制作一个modules
文件夹。
不要认为你能做或应该做的唯一事情是你在Durandal教程中看到的那些。你是开发者。你必须建立在Durandal提供的基础之上,这意味着要做出自己的选择。
答案 1 :(得分:5)
在我的应用程序中,模型始终由应用程序发出请求的REST服务或WebAPI定义。我没有必要在应用程序代码中定义这些模型。模型由服务器/服务端定义。
使用Breeze之类的东西时,模型只是数据库中实体模型的JSON表示。
如果您觉得在应用程序代码中定义这些模型更为舒适,那么非常欢迎您。如果我做了类似的事情,我会把它放在你建议的App\models
文件夹中。不过,我认为你大部分时间都不需要这样做。