在angularjs中,$和$$之间的区别

16 浏览
0 Comments

在angularjs中,$和$$之间的区别

我正在使用以下代码来跟踪我正在导航到的路由:

$scope.$on('$routeChangeStart', function (event, toState, toParams, fromState, fromParams)     
{
  //内容
  $log.log(toState);
}

当我打印"toState"时,它会给我一个对象,如下所示:

{
  $$route: Object
  loadedTemplateUrl: "views/homepage.html"
  locals: Object
  params: Object
  pathParams: Object
  scope: ChildScope
  __proto__: Object
}

在这里,我对“$$”在“$$route”中不确定。有人能解释一下$和$$之间的区别吗?

0
0 Comments

AngularJS中$和$$的区别是什么?

在AngularJS中,$和$$都只是被允许用在变量名中的字符,除此之外并没有其他特殊的含义。AngularJS使用$和$$来标识其自身的重要性和开发团队的意图。

虽然你可以将所有的变量都命名为$或$$,但为了避免冲突,最好不要这样做。以下是一些示例:

$$$$myVariableName;

$myVariableName$;

myVariableName;

$$$$$$myVariableName$$$$$$$$

如果你想测试JavaScript变量名的合法性,可以使用下面的链接进行测试:

[Variable Name Validator](https://mothereff.in/js-variables)

同时,这里还有MDN的链接,其中解释了允许使用的字符:

[MDN allowed characters link](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Values,_variables,_and_literals)

在每个对象中,AngularJS包含了大量的信息,其中一些是给AngularJS本身使用的,而另一些是给开发者使用的。这意味着一些信息可能不可编辑,但是可以作为参考来使用。

然而,在将来的版本中,一些私有的标识符可能会消失,因为AngularJS团队希望开发者不要使用这些保留/私有的名称。

在这个问题中,AngularJS的解释如下:

$前缀命名约定:你可以创建自己的服务,事实上在第11步中我们将这样做。作为命名约定,Angular的内置服务、Scope方法和一些其他的Angular API在名称前面加上了$前缀。

$前缀的存在是为了给Angular提供的服务提供命名空间。为了避免冲突,最好不要给你的服务和模型命名以$开头的任何内容。

如果你检查一个Scope,你可能还会注意到一些以$$开头的属性,这些属性被认为是私有的,不应该被访问或修改。

总结一下,$和$$在AngularJS中只是被允许用在变量名中的字符,它们没有特殊的含义。在变量命名时,为了避免冲突,应该避免使用以$开头的名称。

0