为什么Durandal应用程序中没有建议的“模型”文件夹?

时间:2013-05-14 15:32:51

标签: mvvm durandal

我正在开发Durandal SPA,我已经设置了一些视图和视图模型。但是,我认为MVVM架构还涉及“模型”段(模型,View,ViewModel - 对吧?)。

但是,Durandal Getting Started page在“组织”部分中说明了这一点:

  

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

     
      
  • 应用   
        
    • 迪朗达尔/
    •   
    • 的ViewModels /
    •   
    • 视图/
    •   
    • main.js
    •   
  •   

此结构中缺少“模型”文件夹。你应该把你的模型放在Durandal应用程序的哪个位置?

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

“models”文件夹(不存在)在我看来是Durandal应用程序的关键部分。但是,它不存在 - 因此,我质疑我对Durandal(和MVVM应用程序)的设计理解。肯定有一些我不理解的东西......有人可以填写Durandal应用程序的预期结构,以及放置模型对象的位置吗?

2 个答案:

答案 0 :(得分:6)

答案是Durandal只为您提供运行所必需的结构,仅此而已。 使用 viewmodelsviews文件夹,因此它会告诉您创建一个文件夹。 Durandal不会使用models文件夹。

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

请注意,它也没有为不是viewmodel的代码留下任何位置,这肯定会存在于任何应用程序中。我高度建议为此目的制作一个modules文件夹。

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

答案 1 :(得分:5)

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

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

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