1

全部,

我们正在使用 AngularJS 开发我们的应用程序,并且一次又一次地遇到 Angular 运行或加载控制器两次的问题。当测试我们的控制器时,这变得有点侵入性,更具体地说,当使用 jasmine 的 SpyOn 使用 Testacular 时(因为它们在我们的代码运行之前被触发)。所以,我们的问题是,Angular 在实例化控制器时是否可以保证调用构造函数或 init 方法之类的东西,而不必在测试代码中破解变通办法?TIA。

4

2 回答 2

8

如果您在路由器中指定控制器,那么您的模板不需要通过 ng-controller 标签指定控制器。这样做会双重加载您的控制器。

于 2013-04-16T11:43:31.273 回答
1

你的控制器不应该被加载两次,除非你做错了什么。你不应该破解任何变通办法。

您可能想提供一个具体示例来说明如何加载控制器(和/或与控制器关联的部分)。听起来您可能有一个路由问题,导致您的视图为每个请求加载两次。

假设这是一个与路由相关的问题,除非/直到您可以提供更多信息来帮助人们帮助您,否则您可能需要阅读本文档。特别提到提到“重定向”和“HTML 5”模式的部分:

http://docs.angularjs.org/guide/dev_guide.services.$location

由于信息太少,我无法回答您的问题,但也许该链接可以帮助您自助。:)

于 2012-11-14T01:43:02.743 回答