我有一个控制器,其中$ scope对象用于存储仅在同一控制器中本地使用的方法和值。有很多这样的事情发生了:
$scope.foo = 'something';
$scope.bar = 'something else';
......等等。视图中没有使用这些值。我的问题是污染$ scope对象会影响性能吗?清理它是否是一个好主意,因此只有视图所需的值和方法包含在$ scope对象中?
答案 0 :(得分:2)
是的,污染$scope
确实会影响性能,但它取决于您的范围有多个观察者,这些观察者经常会发生变化,从而产生更多的管理费用。请参阅涵盖相同点的this answer
为避免出现这种情况,我建议您对代码进行良好的重新分解
在需要时处理控制器中的所有逻辑,否则通过充分利用每个组件来分离逻辑。
service
/ factory
/ provider
,以便它可以共享。constant
/ value
$scope
它自己然后将那个逻辑移动到公共控制器。需要时,您可以使用$controller
注入器另请参阅Understanding Of Scope以清楚了解范围的使用