模块功能在AngularJS中做了什么?

时间:2013-05-21 05:01:23

标签: angularjs

关于测试指令的Vojta project中这段代码的作用是什么?

  // load the tabs code
    beforeEach(module('tabs')); 

它说它加载标签代码,但为什么?接下来是不是已经定义了标签模块?

 var tabs = angular.module('tabs', []);

有人可以在角度测试中给出了应该加载的原因和方法吗?

我试图在我的测试中调用此函数,比如

 beforeEach(module('utils')) ;

我收到此错误:

TypeError: Property 'module' of object [object Object] is not a function

此外,当我尝试加载我的模板

beforeEach(module('templates/loadingBar.html')); 

我收到此错误:

Error: No module: templates/loadingBar.html 

我对整个过程感到很困惑。

感谢您的帮助...

1 个答案:

答案 0 :(得分:10)

您列出的代码

var tabs = angular.module('tabs', []);

创建 tabs模块,但是为了加载它,您可能会在DOM中的元素上放置ng-app="tabs"之类的内容。这指示Angular 加载 tabs模块,并使其定义可用于应用程序用来解析依赖关系的injector。 (有关详细信息,请参阅Bootstrap guide。)

在您的测试中,没有ng-app指令来初始化注入器或加载模块; module函数(exists on angular.mock from the angular-mocks.js file)在测试中为您执行此操作。如果您使用Karma Jasmine或Mocha适配器进行测试,则可以使用module,否则您可能需要拨打angular.mock.module