我最近一直在想這個。到現在爲止,我一直訂閱約翰爸爸的建議,該建議可以看這裏:角度控制器:每個視圖1個 - 它有意義嗎?
https://github.com/johnpapa/angular-styleguide#controllers
Define a controller for a view, and try not to reuse the controller for other views. Instead, move reusable logic to factories and keep the controller simple and focused on its view.
他給出了一個理由,我不明白,但對我來說,主要是由易用性的動機-work /可維護性。基本上,在處理大型應用程序時,真的很難找到一個負責幾個不同視圖的臃腫控制器。如果開發人員想要清理控制器,他/她必須查看每個視圖並確定使用的內容以及爲什麼(如果方法非常相似,可以合併這些方法),這是一項重大的工作。通常情況下(特別是在時間有限的情況下),他們會選擇將所需的任何功能添加到模型中,然後「稍後再回來」,這就是它首先如何膨脹的原因。此外,我一直使用控制器/指令來指示邏輯是否在許多視圖中重複出現(即,如果另一個開發人員走到我寫的控制器,他/她可以確定我只用它一個視圖,因爲否則它將是指令)。
這是一個類似的問題,端點問題基本上有人在需求基礎上添加端點,最終由於新的人不知道舊的端點或簡單的健忘API超級膨脹和重複。然而,正如我所說,最近我一直認爲,這個1-1控制器查看關係真的對整個MVC模式有效,因爲它將模型耦合到視圖並破壞了關注點的分離。我的意思是,只要控制器保持專注(即我們有一個EditUserCtrl,它的工作是編輯用戶等),那麼爲什麼兩個視圖不能使用該控制器呢?我的意思是,如果企業決定在另一個具有相同功能的地方需要一個新視圖,爲什麼我不應該只寫一個新視圖並將它連接到舊控制器?我想我所說的是我無法協調違背框架基礎的慣例。
很想聽到別人對此的想法。提前致謝。