2013-05-14 60 views
3

我正在做一個Durandal SPA,我已經設置了一些視圖和視圖模型。但是,我認爲MVVM架構還會涉及「模型」細分(模型,視圖,視圖模型 - 對嗎?)。爲什麼Durandal應用程序中沒有建議的「模型」文件夾?

然而,Durandal Getting Started page說這個「組織」部分:

如果展開app文件夾,你會發現整個 SPA樣品的來源。這裏的高層次的組織,你會發現:

  • 應用
    • 迪朗達爾/
    • 的ViewModels/
    • 的意見/
    • main.js

缺席從這個結構是一個「模型」文件夾。你應該在哪裏把你的模型放在Durandal應用程序中?

我已經看了一些其他示例應用程序,但我找不到任何示例應用程序的「模型」文件夾(或模型駐留的任何位置)。

「models」文件夾(不存在)在我看來是Durandal應用程序的重要組成部分。但是,它不在那裏 - 因此,我質疑我對Durandal(和MVVM應用程序)如何設計的理解。肯定有一些我不瞭解的東西......有人可以幫我介紹Durandal應用程序的預期結構,以及放置模型對象的位置嗎?

回答

6

答案是,Durandal只給你運行所需的結構,沒有其他。它使用 a viewmodelsviews文件夾,所以它告訴你做一個。 Durandal不使用models文件夾,你這樣做。

我在我的項目中製作一個。如果你覺得它適合你的開發風格,你可以並且應該自己做。

請注意,它也沒有留下任何不是視圖模型的代碼,它肯定會存在於任何應用程序中。我高度建議爲此目的製作一個modules文件夾。

不要以爲你能做的或者應該做的唯一的事情就是你在Durandal教程中看到的東西。你是開發者。您必須在Durandal提供的基礎上進行構建,這意味着您可以自行選擇。

+0

此外,@Tyrsius有一篇關於構建Durandal應用的好博客文章:[組織Durandal應用](http://blog.tyrsius.com/organize-durandal-app/)。 – Alexander 2014-04-16 04:11:20

5

在我的應用程序中,模型一直由應用程序提出請求的REST服務或WebAPI定義。我沒有必要在應用程序代碼中定義這些模型。模型由服務器/服務端定義。

當使用類似Breeze的東西時,模型僅僅是數據庫中實體模型的JSON表示。

如果您覺得在應用程序代碼中定義這些模型更加舒適,那麼您非常歡迎。如果我做了這樣的事情,我會按照你的建議把它放在App\models文件夾中。不過,我認爲你大部分時間都不需要這樣做。

相關問題