我应该在Angular控制器中声明“var”变量还是始终使用$ scope

时间:2016-02-08 13:03:40

标签: angularjs

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

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

xy将从我的应用程序中更改,无论我是否在var x上声明$scope或只是声明它,它是否有所不同var就像现在一样?

4 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:2)

这完全取决于您正在开发的应用程序。如果希望通过variablesviewcontroller的{​​{1}}绑定,则首选$scope。否则,当变量仅用于某些内部功能时,则应该使用JavaScript var,因为它在使用AngularJS框架时不会妨碍性能,添加不必要的变量。根本不需要双向绑定或单向绑定。

答案 2 :(得分:0)

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

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

对于原生JS而言,很明显你不需要var"这个",对吗?

答案 3 :(得分:0)

如果你将值绑定到任何更改模型时应该更改的html dom,那么你应该使用$ scope。否则你可以使用var和$ scope。但现在角度2.0 $范围已被删除。