2013-09-05 82 views
1

当我有一个使用一个控制器我已经能够通过这样来访问我的测试指令的范围的角度指令:测试角指令范围加载

element = angular.element('<my-directive></my-directive>'); 
element = $compile(element)($rootScope); 
$rootScope.$digest(); 

scope = element.scope(); 

这使我设置/获取范围属性并直接调用由指令控制器定义的函数。

但是,只要我将jQuery引入到项目中(由我想使用的另一个依赖项所要求),就停止工作了。具体在测试element.scope()正在返回undefined。使用开发工具我可以看到,当应用程序运行真实时,情况并非如此 - 即我可以执行$('.blah').scope()并取回非undefined值。

任何人都知道为什么这不起作用?我已经将jQuery添加到我的karma.conf.js(我正在使用Yeoman Angular生成器),它的顺序与它包含在HTML文件中的顺序相同。

回答

1

我发现了这个问题。我正在PhantomJS中运行我的测试,并且正在使用jQuery 2.0.3。降级到jQuery 1.10.2使所有的工作都重新开始。我有点惊讶PhantomJS会有兼容性问题,但这似乎是问题所在。