javascript - 如果在 Angular 中不使用 $scope,如何使用 $apply() ?

标签 javascript angularjs

在我的应用程序中,我使用 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/

相关文章:

javascript - $routeProvider 将无法正常工作

javascript - 如何在 Angular JS 中进行变量路由

http - AngularJS 工厂 http 返回空

javascript - 一对标记传单之间并排的两条折线

javascript - Three.js 相机旋转错误

javascript - Firebase 我的用户 ID 结构应该包含 "simplelogin"一词吗?

javascript - 按 ID 显示/隐藏元素

javascript - 如何防止向左/向右滑动时垂直滚动

javascript - 如果下拉值的第一个字符是空格,如何删除它? Angular.js

jquery - 根据元素数量布置 HTML 元素