什么时候使用$ scope?何时在AngularJS中使用var?

学习者

使用var是否比使用$ scope更好?在AngularJS里面的函数变量?

我提出这个问题的原因并不像看起来那么简单。我最近读到有关$ watch,$ digest,$ apply的信息。尽管我不完全了解它,但我知道$ digest可以循环工作。这篇文章解释得很好。

如何在AngularJS中使用$ scope。$ watch和$ scope。$ apply?

因此,如果您在控制器中定义了$ scope.myVar,则明确告诉Angular监视myVar上的更改。这项活动不会减慢整个系统的速度吗?

皮划艇戴夫

简短的答案:是的,最好将控制器内部纯粹的任何变量声明为javascript变量(“ var”),而不是将其添加到Angular范围。

Angular作用域对象提供了许多不错的功能,使它们可以充当模型视图-*(MV *)体系结构中的模型(例如,数据绑定)。或者说另一种方式,如范围Angular指南所说:“范围是应用程序控制器和视图之间的粘合剂”。

最好指出的是,最好只将模型中需要的对象,需要同时绑定到DOM和controller / services / ...的对象放在范围内,因为这些功能确实会降低性能。如果您的作用域“杂乱”了一些实际上不是模型的一部分的变量,那么这也会使其他阅读您代码的人感到困惑。

这是Angular范围文档中的范围的特定功能

范围提供API($ watch)来观察模型突变。

范围提供API($ apply)以将所有模型更改通过系统从“ Angular域”(控制器,服务,Angular事件处理程序)的外部传播到视图中。

范围可以嵌套以限制对应用程序组件属性的访问,同时提供对共享模型属性的访问。嵌套范围是“子范围”或“隔离范围”。“子作用域”(典型地)从其父作用域继承属性。“隔离范围”则没有。有关更多信息,请参见隔离范围。

范围提供了针对表达式进行评估的上下文。例如,{{username}}表达式是没有意义的,除非根据定义了username属性的特定范围对其进行评估。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章