angularjs 中的 $ 和 $$ 之间的差异
Difference between $ and $$ in angularjs
我正在使用
$scope.$on('$routeChangeStart', function (event, toState, toParams, fromState, fromParams)
{
//content
$log.log(toState);
}
跟踪我正在导航到的路线。当我打印"toState"时,它给了我一个对象,如下所示。
{
$$route: Object
loadedTemplateUrl: "views/homepage.html"
locals: Object
params: Object
pathParams: Object
scope: ChildScope
__proto__: Object
}
在这里,我不能 100% 确定"$$$route"中的"$$"。有人可以解释一下$ 和 $$ 之间的区别吗?
也许我们可以添加到Jiří Pospíšil包含的链接中:
类似链接
除了对 Angularjs 很重要之外,"$$"或"$"只是变量名称中允许的字符。Angularjs 使用两者来确定对您和他们自己的开发团队的重要性,如"类似链接"中所述。
你可以用同样的方式命名所有变量;但为了避免命名冲突,请远离这种做法。这里有一些例子,如果你这样做了...
$$$myVariableName; $myVariableName$;我的变量名称;$$$$$$myVariableName$
$$$$$$$$
如果您愿意,这里有一个测试JS变量名称的链接:
变量名验证器
这里有一个指向 MDN 的链接,解释了允许的字符:
MDN 允许的字符链接
这是文字:
变量
使用变量作为应用程序中值的符号名称。变量的名称(称为标识符)符合某些规则。JavaScript 标识符必须以字母、下划线 (_) 或美元符号 ($) 开头;
后续字符也可以是数字 (0-9)。因为 JavaScript 区分大小写,所以字母包括字符"A"到"Z"(大写)和字符"a"到"z"(小写)。
从 JavaScript 1.5 开始,您可以在标识符中使用 ISO 8859-1 或 Unicode 字母,例如 å 和 ü。您还可以使用 ''uXXXX Unicode 转义序列作为 ientifier 中的字符。
法定名称的一些示例是 Number_hits、temp99 和 _name。
Angulajs在每个对象中都包含相当多的信息;有些项目是针对Angularjs的,有些是给开发人员的,这意味着有些可能不可编辑,但如果这是你要使用它的目的,那么所有项目都应该可供参考。
但是,在未来的版本中,任何私有标识符都可能会消失,因为Angularjs团队希望开发人员不使用保留/私有名称。
更新:进入其中一些私有标识符也可能打开某人对 Angularjs 的理解; 可以这么说是幕后黑手。
在发布的"类似链接"的情况下,这里是Angularjs所说的:
$ 前缀命名约定 您可以创建自己的服务,并在事实上,我们将在步骤 11 中做到这一点。 作为命名约定,Angular 的内置服务、Scope 方法和其他一些 AngularAPI 的名称前面有一个 $ 前缀。
$ 前缀用于命名空间 Angular 提供的服务。自防止冲突 最好避免命名服务和模型任何以 $ 开头的内容。
如果检查范围,您可能还会注意到一些开始的属性用 $$。 这些属性被视为私有属性,不应访问或修改。
- EJS中的Angularjs-Ui路由器参数
- 自定义指令中的AngularJS ng模型
- 无法访问指令中的AngularJS属性
- 自定义指令模板中的AngularJS控制变量
- 函数中的 angularJS 访问对象属性不起作用
- 指令中的 AngularJS 自定义过滤器以格式化值
- 嵌套ng中的Angularjs单选按钮重复未选中
- 配置中的AngularJS筛选器
- 量角器中的AngularJS E2E测试失败
- 如何正确访问es6中的AngularJS服务
- 工厂中的AngularJS$http请求
- 未调用路由中的AngularJS控制器
- 指令中的AngularJS函数()与函数factory()
- ng中的Angularjs函数重复调用过多次
- 通过 aspx 网页中的 Angularjs 将数据传递给 WebMethod
- IE中的AngularJS错误与样式与ng样式
- 指令和表单验证中的 AngularJS 动态必需属性
- IIS中的AngularJS路由
- 从 MeanJS 中的 AngularJS Promise 获取值
- React 组件中的 AngularJS 过滤器