zoukankan      html  css  js  c++  java
  • 声明了一个模块和一个控制器AngularJS的处理过程

    例如下面这段代码。这是一个简单的应用,声明了一个模块和一个控制器:

    angular.module('myApp', [])
        .factory('greeter', function() {
            return {
                greet: function(msg) {alert(msg);}
            }
        })
        .controller('MyController',function($scope, greeter) {
            $scope.sayHello = function() {
                greeter.greet("Hello!");
            };
        });

    当AngularJS实例化这个模块时,会查找 greeter 并自然而然地把对它的引用传递进去:

    <div ng-app="myApp">
        <div ng-controller="MyController">
            <button ng-click="sayHello()">Hello</button>
        </div>
    </div>

    而在内部,AngularJS的处理过程是下面这样的:
      // 使用注入器加载应用 var injector = angular.injector(['ng', 'myApp']);
      // 通过注入器加载$controller服务:var $controller = injector.get('$controller');
      var scope = injector.get('$rootScope').$new();
      // 加载控制器并传入一个作用域,同AngularJS在运行时做的一样 var MyController = $controller('MyController', {$scope: scope})
    上面的代码中并没有说明是如何找到 greeter 的,但是它的确能正常工作,因为 $injector会负责为我们查找并加载它。

  • 相关阅读:
    797. 所有可能的路径
    1286. 字母组合迭代器
    216. 组合总和 III
    77. 组合
    784. 字母大小写全排列
    90. 子集 II
    78. 子集
    47. 全排列 II
    46. 全排列
    40. 组合总和 II
  • 原文地址:https://www.cnblogs.com/ms-grf/p/6874868.html
Copyright © 2011-2022 走看看