污染$ scope对象会影响性能吗?

时间:2015-05-13 17:50:21

标签: angularjs angularjs-scope angularjs-controller

我有一个控制器,其中$ scope对象用于存储仅在同一控制器中本地使用的方法和值。有很多这样的事情发生了:

$scope.foo = 'something';
$scope.bar = 'something else';

......等等。视图中没有使用这些值。我的问题是污染$ scope对象会影响性能吗?清理它是否是一个好主意,因此只有视图所需的值和方法包含在$ scope对象中?

1 个答案:

答案 0 :(得分:2)

是的,污染$scope确实会影响性能,但它取决于您的范围有多个观察者,这些观察者经常会发生变化,从而产生更多的管理费用。请参阅涵盖相同点的this answer

为避免出现这种情况,我建议您对代码进行良好的重新分解

在需要时处理控制器中的所有逻辑,否则通过充分利用每个组件来分离逻辑。

  1. 将常用方法(逻辑)移动到多个位置使用的service / factory / provider,以便它可以共享。
  2. 如果某些值已修复,则不会更改,然后将其移至constant / value
  3. 每当你觉得你有相同的逻辑需要保留在$scope它自己然后将那个逻辑移动到公共控制器。需要时,您可以使用$controller注入器
  4. 注入当前的控制器范围

    另请参阅Understanding Of Scope以清楚了解范围的使用