编程语言
首页 > 编程语言> > javascript – 保持`$watch`功能远离控制器的最佳实践

javascript – 保持`$watch`功能远离控制器的最佳实践

作者:互联网

例如,我试图找到一些关于将$watch函数从控制器移动到工厂的最佳实践的好例子.

我发现实际上并没有一致意见最好做什么.我已经看到了将$rootScope注入工厂并观察价值变化的示例.

另一个建议是尽可能避免使用它们,并在元素本身上使用ngChange,例如:

<div ng-model="foo.bar" ng-change="updateValue(foo.bar)"></div>

你提议的方式是什么?自从我开始学习AngularJS以来,我一直在我的控制器中放置$watch.但现在我想采用最佳实践方法,尝试制作并尽可能保持我的控制器.

解决方法:

我想在哪里放置$watch取决于用例场景.关注$watch最重要的一点是不要在句柄功能中做任何艰苦的工作,特别是如果你正在观看的内容正在发生很大变化;这会严重阻碍你的表现.并确保在您的句柄功能中,您不会更改已经被监视的其他内容,因为这将导致一系列更改更新.

如果您确定您正在观看的变量只能从一个地方更改,那么最好使用ng-change而不是$watch,因为您已经知道它变更的地方.

通常不使用不必要的对象填充rootScope,但如果你正在观察整个应用程序中使用的某些变量,例如当前用户的属性,我想将$watch表达式放入$rootScope是有意义的.

标签:javascript,angularjs,angularjs-service,angularjs-scope,angularjs-directive
来源: https://codeday.me/bug/20190624/1277012.html