当我有一个使用控制器的角指令时,通过这样做,我能够在我的测试中访问指令的作用域:
element = angular.element('<my-directive></my-directive>');
element = $compile(element)($rootScope);
$rootScope.$digest();
scope = element.scope();
这使我能够设置/获取作用域属性,并直接调用指令的控制器定义的函数。
但是,当我将jQuery引入项目(我想使用的另一个依赖项所要求的)时,它就停止工作了。特别是在测试中,element.scope()
正在返回undefined
。使用开发工具,我可以看到,当应用程序运行真正的- i.e时,情况并非如此,我可以执行$('.blah').scope()
,并获得一个非undefined
值。
有人知道为什么这行不通吗?我将jQuery添加到karma.conf.js中(我使用的是约曼角度生成器),其顺序与包含在karma.conf.js文件中的顺序相同。
发布于 2013-09-06 08:28:16
我发现了问题。我正在PhantomJS中运行我的测试,并使用jQuery 2.0.3。降级到jQuery 1.10.2使一切都恢复正常。我有点惊讶于PhantomJS会出现兼容性问题,但这似乎就是问题所在。
https://stackoverflow.com/questions/18639531
复制相似问题