Angularjs 如果ng应用程序与ui视图位于同一标记中,为什么量角器会失败?

Angularjs 如果ng应用程序与ui视图位于同一标记中,为什么量角器会失败?,angularjs,protractor,Angularjs,Protractor,我有一个问题,当ng应用程序与(AngularUI)ui视图位于同一标签上时,我没有运行任何测试,并且我得到: 错误:等待量角器与页面同步时出错:{“消息”:“angular.element(…).injector(…)未定义”,“stackTrace”:[{“fileName”:”http://localhost:3000/,“lineNumber”:71,“methodName”:“anonymous/问题在于,当ng应用程序和ui视图在同一个元素上声明时,angular.element(

我有一个问题,当ng应用程序与(AngularUI)ui视图位于同一标签上时,我没有运行任何测试,并且我得到:


错误:等待量角器与页面同步时出错:{“消息”:“angular.element(…).injector(…)未定义”,“stackTrace”:[{“fileName”:”http://localhost:3000/,“lineNumber”:71,“methodName”:“anonymous/问题在于,当ng应用程序和ui视图在同一个元素上声明时,angular.element().injector()未定义。但是,如果它们位于不同的元件上,则两个元件都存在喷油器

这是因为ui路由器和angular之间存在交互,因为ui view指令使用transclusion。在与ng app相同的元素上使用transclusion的指令会导致它通过angular.element().injector()没有正确的注入器。以下是一个简化示例:


我认为这一切都按预期进行了,解决方案是不在同一元素上使用ng app和ui view。

我可以给你10000+1,因为我已经将ng app和ng ui view设置为同一标记,并浪费了2个小时来发现这会让我的量角器测试失败。”等待量角器与页面同步时出错。快速解决方案:在index.html中放置另一个div(浪费一些额外的空间,但它可以工作…)。也许您可以在github上开始一个关于量角器的问题?@Sebastian我刚刚在量角器上创建了一个问题:。感谢您指出这一点!您知道为什么window.angular.element('*:not([ui视图][ng应用])。injector()仍返回未定义的错误?