我注意到在Angular的许多人的示例单元测试中,他们在范围前省略了“$”,如下所示:
// in beforeEach(inject(function() {})) call
scope = $rootScope.$new();
var ctrl = $controller({
'$scope' : scope
});
为什么有些人会采用这个惯例?在Angular文档中,他们似乎并没有大惊小怪,或根本没有提及它。
答案 0 :(得分:2)
长话短说,'$'放在注入代码的服务/变量前面($ rootScope,$ scope,$ http等)。因此,因为您在测试中使用范围作为局部变量,按照惯例,它前面没有'$',因为它没有注入到您的代码中,而$ rootScope总是如此。
有关更多说明,请参阅此处:https://www.youtube.com/watch?v=NnB2NBtoeAY
基本上,命名无关紧要,但它可以使您的代码更具可读性。