【问题标题】:Should I declare "var" variables in an Angular controller or always use $scope我应该在 Angular 控制器中声明“var”变量还是总是使用 $scope
【发布时间】:2016-02-08 13:03:39
【问题描述】:

如果我有一个控制器,例如:

myApp.controller('NewController', function ($scope, $window) {
   var x = 5;
   $scope.y = 5;
});

并且x 和y 将从我的应用程序中更改,无论我是在$scope 上声明var x 还是像现在这样用var 声明它都有什么区别?

【问题讨论】:

  • 是的,它确实有所作为。查看您的代码的人需要知道哪些是内部“私有”变量,哪些在您的视图中公开为“公共”。

标签: angularjs


【解决方案1】:

$scope 只是渲染视图和控制器之间的粘合剂。如果您的视图中不需要该变量,请不要将其添加到 $scope 对象中。

【讨论】:

    【解决方案2】:

    这完全取决于您正在开发的应用程序。如果希望通过controller 将variables 与view 绑定,则首选$scope。否则,当变量仅用于某些内部功能时,应该使用 JavaScript 的 var,因为它不会影响使用 AngularJS 框架时的性能,通过添加两个都不需要的不必要的变量单向绑定或单向绑定。

    【讨论】:

      【解决方案3】:

      最好使用新的 ControllerAs 语法而不是使用 $scope:

      myApp.controller('NewController', function ($scope, $window) {
          this.y = 5;
      });
      

      对于原生 JS,很明显你不需要 var 在 "this" 之前,对吧?

      【讨论】:

      • 如果我使用路由器并且从不在我的视图中声明 ng-controller="" 这应该不起作用?
      【解决方案4】:

      如果您将值与在更改模型时应该更改的任何 html dom 绑定,则取决于您,那么您应该使用 $scope。否则你可以使用 var 和 $scope。但现在在 Angular 2.0 中 $scope 已被移除。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-10-23
        • 2013-05-13
        • 2019-09-23
        • 2011-10-17
        • 2012-09-02
        • 2014-03-24
        • 2012-12-23
        相关资源
        最近更新 更多