在Angular.js单元测试中,是否允许在'scope'前面省略'$'而不是'$ rootScope'(或其他注入的服务)?

时间:2013-12-10 16:37:28

标签: javascript unit-testing angularjs

我注意到在Angular的许多人的示例单元测试中,他们在范围前省略了“$”,如下所示:

// in beforeEach(inject(function() {})) call
scope = $rootScope.$new();
var ctrl = $controller({
    '$scope' : scope
});

为什么有些人会采用这个惯例?在Angular文档中,他们似乎并没有大惊小怪,或根本没有提及它。

1 个答案:

答案 0 :(得分:2)

长话短说,'$'放在注入代码的服务/变量前面($ rootScope,$ scope,$ http等)。因此,因为您在测试中使用范围作为局部变量,按照惯例,它前面没有'$',因为它没有注入到您的代码中,而$ rootScope总是如此。

有关更多说明,请参阅此处:https://www.youtube.com/watch?v=NnB2NBtoeAY

基本上,命名无关紧要,但它可以使您的代码更具可读性。