所有
我们正在使用AngularJS开发我们的应用程序,我们一次又一次地遇到Angular运行或加载控制器的问题。在测试我们的控制器时更具侵入性,更具体地说,在与茉莉花的SpyOn一起使用Testacular时(因为它们在我们的代码运行之前被触发)。所以,我们的问题是,在实例化控制器时,Angular是否保证会调用构造函数或init方法,而不必在测试代码中破解解决方法? TIA。
答案 0 :(得分:8)
如果要在路由器中指定控制器,则模板不需要通过ng-controller标签指定控制器。这样做会使控制器重复加载。
答案 1 :(得分:1)
除非您做错了,否则不应加载您的控制器两次。你不应该破解任何解决办法。
您可能希望提供有关如何加载控制器(和/或与控制器关联的部分)的具体示例。听起来你可能有一个路由问题导致你的视图每次请求加载两次。
假设这是与路由相关的问题,除非/您可以提供更多信息以帮助人们为您提供帮助,否则您可能需要阅读本文档。请特别提及提及“重定向”和“HTML 5”模式的部分:
http://docs.angularjs.org/guide/dev_guide.services.$location
由于信息太少,我无法回答你的问题,但也许这个链接可以帮助你自己。 :)