所以最近我開始學習angularJS,我正在開發一個SPA項目。 它是一個有幾個步驟的遊戲(遊戲的目的對於問題的重要性並不重要)什麼時候應該在我的應用程序中使用多個控制器?
目前我有一個控制器用於每一個步驟,它們都是一個mainControlelr所以在我的HTML,它看起來是這樣的:
<div class="container" ng-controller="mainCtrl">
<!--main container-->
<div class="row">
<!--center pane-->
<div id="centerPane" class="col-lg-8 center-block">
.
. some code...
.
<!--steps-->
<div ng-view id="form-views"></div>
.
. some code...
.
</div>
.
. some code...
.
</div>
與一些朋友討論之後,所有的人都告訴我,這是不是做一個很好的方式,我應該做的一代替如下:
- 只與一個控制器一起工作(對於這個例子,'mainCtrl')
- 保持這樣的代碼,但注入一個特定的服務,給我的所有控制器,這將保存我所有的全局變量,並確保控制器正在更新服務變量。
所以基本上我的問題是,作爲一個經驗法則,應該考慮在SPA中使用多個控制器?
感謝,
幾乎總是u可以使用盡可能多的控制器的可能,如果只使用一個控制器您的代碼就會整體,難以維持 –
創建自定義的指令,以便您的應用程序被分解成較小的碎片,這樣它將更容易維護和單元測試。這些自定義指令中的每一個都可以有自己的控制器,並且如果需要可以有獨立的範圍。理解指令有一個學習曲線,但一旦你掌握了知識,它就是一個蛋糕走路。 – dishwasherWithProgrammingSkill
@dishwasherWithProgrammingSkill 是的,我做了指令, 我問:「作爲一個經驗法則,我們應該考慮在SPA中使用多個控制器? 我想知道什麼是建立一個SPA時最好的做法 – asafel