在我的应用程序中,我使用 this
而不是 $scope
来保存变量和函数,并在 HTML 中使用 Controller 别名进行访问。
在这种情况下,如何更新我的 View ,执行诸如 $digest()
或 $apply()
of $scope
的操作>?
或者是否需要注入(inject) $scope
才能做到这一点?
最佳答案
controllerAs
方式与 Controller 中的 $scope
无关。这是一种避免 $scope
和模板之间发生接触并提高可读性的模式。但是,即使您使用 controllerAs
语法,您也可以毫无问题地在 Controller 上注入(inject) $scope
。这就是 controllerAs
的作用,将 $scope
用于适当的任务,例如 $scope.$apply
,但不作为 View 模型。
即使您使用的是 controllerAs
,注入(inject) $scope
也不是一个坏习惯。但如果您使用 $scope
像 View 模型一样工作,这将是一个不好的做法。不管怎样,即使你不注入(inject),$scope
也会以某种方式存在于 Controller 内部,它是 Controller 的一部分。 controllerAs
的方法是将 View 模型的 Angular 色与 $scope
分开。最终 View 模型成为作用域的一部分,但它与 $scope
的其余功能隔离。
关于javascript - 如果在 Angular 中不使用 $scope,如何使用 $apply() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39964135/