当我有一个使用控制器的 Angular 指令时,我可以通过执行以下操作在我的测试中访问指令的范围:
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 文件中的顺序相同。