在Angular中将数据附加到$ scope的不同方法

时间:2016-10-18 16:26:27

标签: javascript angularjs

我是Angular 1的初学者,我明白$ scope是vew和modal之间的粘合剂。

有谁能告诉我这三种定义控制器的方法之间的区别。

1)

   (function(angular) {
      'use strict';
       var myApp = angular.module('myApp', []);
       myApp.controller('namesCtrl', ['$scope', function($scope) {
         $scope.customSpice = 'wasabi';

       }]);
    })(window.angular);

是否使用带有值的传递数组[' $ scope',function]。单靠功能是不够的?

2)

angular.module('myApp', []).controller('namesCtrl', function($scope) {

});

3)

  (function(angular) {
    'use strict';
     angular.module('invoice1', [])
     .controller('namesCtrl', function namesCtrl() {
        this.customSpice = 'wasabi';
      });
    })(window.angular);

我们如何在第3个示例中将数据绑定到$ scope我在https://docs.angularjs.org/guide/concepts找到了这个示例。

2 个答案:

答案 0 :(得分:2)

案例3:

受控用作"控制器为"句法。这是与DOM绑定的最新实践。这里$ scope变量用于HTML中的当前控制器的上下文中。

但是要在闭包或其他函数中使用它,您需要复制对此上下文的引用

例如:var cs = this;

案例1和案例2基本相同,只是在案例1中将$ scope作为依赖项传递。

在此处阅读更多内容,了解每个Angular: Should I use this or $scope

的好处

答案 1 :(得分:1)

  1. ['$scope', function($scope){}]被称为Inline Array Annotation。 角度地图$scope(缩小后称a)与'$scope'。当您计划minify代码时很有用。
  2. Implicit Annotation。请注意minification
  3. controllerAs。当您使用controllerAs语法时,例如"myCtrl as ct"有角度$scope.ct = this。在这里,您还使用$scope作为视图和模态之间的粘合剂。