0

我剛開始玩AngularJS。然而,當我嘗試使用angular bootstrap directives來創建選項卡式窗格時,我遇到了一個令我頗爲困惑的案例。我跟着this example,我唯一改變的是將TabsCtrl變量重命名爲TabsController,因爲我在我的應用程序的其餘部分中一直使用* Controller約定。AngularJS控制器的命名問題

我發現真奇怪的是,這個重命名打破了整個事情!重命名後,TabsController函數從未執行過。你可以在plunker link上自己測試。

我需要弄清楚這一點,因爲看起來很可怕的是,重命名這樣的對象會讓我們知道爲什麼會中斷它。 *控制器變量名保留在某種程度上?我怎麼能夠毫無問題地使用*控制器的命名約定爲我的控制器的其餘部分?

編輯:它似乎是確切的話TabsController是造成這個問題。我嘗試命名它的BajsController,而不是,而且工作..

+0

你的plunker示例工程,重命名控制器不會制動任何東西 – karaxuna

+0

是的,它的工作原理..一旦你重命名爲TabsController –

+0

重命名爲TabsController的BajsController? – karaxuna

回答

3

哦,我發現它。

似乎引導程序角度指令已經定義了一個名爲"TabsController"的控制器,所以這就是衝突所在。

當我在調試控制檯中尋找名爲"TabsController"的現有對象時,我沒有發現這種衝突,但這當然是因爲它沒有在bootstrap指令中聲明爲全局變量。