<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ### 14.3. 定義服務 服務本身是一個任意的對象。但是 _ng_ 提供服務的過程涉及它的依賴注入機制。在這里呢,就要先介紹一下叫 _provider_ 的東西。 簡單來說, _provider_ 是被“注入控制器”使用的一個對象,注入機制通過調用一個 _provider_ 的 _$get()_ 方法,把得到的東西作為參數進行相關調用(比如把得到的服務作為一個 _Controller_ 的參數)。 在這里“服務”的概念就比較不明確,對使用而言,服務僅指 _$get()_ 方法返回的東西,但是在整體機制上,服務又要指提供了 _$get()_ 方法的整個對象。 //這是一個provider var pp = function(){ this.$get = function(){ return {'haha': '123'}; } } //我在模塊的初始化過程當中, 定義了一個叫 PP 的服務 var app = angular.module('Demo', [], function($provide){ $provide.provider('PP', pp); }); //PP服務實際上就是 pp 這個 provider 的 $get() 方法返回的東西 app.controller('TestCtrl', function($scope, PP){ console.log(PP); } ); 上面的代碼是一種定義服務的方法,當然, _ng_ 還有相關的 shortcut, _ng_ 總有很多 shortcut 。 第一個是 _factory_ 方法,由 _$provide_ 提供, _module_ 的 _factory_ 是一個引用,作用一樣。這個方法直接把一個函數當成是一個對象的 _$get()_ 方法,這樣你就不用顯式地定義一個 _provider_ 了: var app = angular.module('Demo', [], function($provide){ $provide.factory('PP', function(){ return {'hello': '123'}; }); }); app.controller('TestCtrl', function($scope, PP){ console.log(PP) }); 在 _module_ 中使用: var app = angular.module('Demo', [], function(){ }); app.factory('PP', function(){return {'abc': '123'}}); app.controller('TestCtrl', function($scope, PP){ console.log(PP) }); 第二個是 _service_ 方法,也是由 _$provide_ 提供, _module_ 中有對它的同名引用。 _service_ 和 _factory_ 的區別在于,前者是要求提供一個“構造方法”,后者是要求提供 _$get()_ 方法。意思就是,前者一定是得到一個 `object` ,后者可以是一個數字或字符串。它們的關系大概是: var app = angular.module('Demo', [], function(){ }); app.service = function(name, constructor){ app.factory(name, function(){ return (new constructor()); }); } 這里插一句,js 中 _new_ 的作用,以 `new a()` 為例,過程相當于: 1. 創建一個空對象 obj 1. 把 obj 綁定到 a 函數的上下文當中(即 a 中的 this 現在指向 obj ) 1. 執行 a 函數 1. 返回 obj _service_ 方法的使用就很簡單了: var app = angular.module('Demo', [], function(){ }); app.service('PP', function(){ this.abc = '123'; }); app.controller('TestCtrl', function($scope, PP){ console.log(PP) });
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看