在UI-Router中获取当前控制器实例? (在测试中)

时间:2015-03-25 13:30:22

标签: angularjs unit-testing angular-ui-router

我根据this answer设置了路线测试。我现在想检查注入路径控制器的东西是否正确设置。从状态对象,我只能获得控制器的构造函数。我想知道如何访问实际的实例?

1 个答案:

答案 0 :(得分:5)

这可能太过迂回,无法成为官方解决方案,但似乎它可以起作用。如果你在你的状态中使用controller-as语法,即" SomeController作为ctrl",那么它将被添加到具有给定名称的$ scope对象。之后,您可以在以下网址找到:

$state.$current.locals['@viewname'].$scope.ctrl

...其中' @ viewname'将是您的视图的名称,并且' ctrl'是您的控制器别名。

可能应该有一种更简单的方法来做到这一点。它是编写跨越多个状态的测试的一个非常方便的功能(不需要使用Protractor / Selenium之类的东西)