我刚开始玩AngularJS
。然而,在尝试使用angular bootstrap directives创建选项卡式窗格时,我偶然发现了一个让我感到困惑的案例。我跟着this example,我唯一改变的是将TabsCtrl
变量重命名为TabsController
,因为我在我的应用程序的其余部分使用了* Controller约定。
我觉得很奇怪的是,这次重命名打破了整个事情!重命名后,TabsController
函数从未执行过。您可以在plunker link上自行测试。
我需要直截了当,因为看起来很可怕重命名像这样的对象会让它在没有我知道原因的情况下破坏。 * Controller变量名称是以某种方式保留的吗?为什么我能够在没有问题的情况下为其余的控制器使用* Controller命名约定?
编辑:似乎是导致问题的确切单词TabsController
。我尝试将它命名为BajsController,而且有效..
答案 0 :(得分:3)
哦,我找到了。
似乎bootstrap角度指令已经定义了一个名为"TabsController"
的控制器,所以这就是冲突所在。
当我在调试控制台中查找名为"TabsController"
的现有对象时,我没有发现这种冲突,但这当然是因为它未在bootstrap指令中声明为全局变量。