AngulerJS學習(五)按需動態載入檔案

2022-09-02 02:00:14 字數 1837 閱讀 3065

在此之前我麼年首先要先了解幾個東西:

$q:主要解決的是非同步程式設計的問題,是指描寫敘述通過乙個承諾行為與物件代表的非同步執行的行動結果的互動。可能會也可能不會再不論什麼時候完畢。

我們通過乙個小故事理解 $q 服務。

中午點外買,打**要了份炒飯,要求送到公司並給了老闆詳細位址。這個過程就是 $q.defer。

飯菜不可能馬上送到,因此這是乙個延期響應的請求;

老闆說盡快送到。也就是老闆給了我乙個承諾 promise;

我能夠邊工作邊等待,說明這個請求是個非同步執行的過程。

這樣這個延期非同步請求就算建立完畢了。就是乙個deferred。

飯菜送到我去接受,這個過程稱為 deferred.resolve(data) 響應事件。

假設公尺飯賣完了老闆會告訴我做不了了。也就是拒絕我的請求了,就是 deferred.reject(error);

老闆能夠再不論什麼時候跟我說做不了。僅僅要在他還沒把飯送來之前都能夠。

快到樓下了,通知我去取。這就是通知 deferred.notify(data)

這樣整個非同步**過程就完畢了。

第二天我們好多人都要訂餐。所以我就能夠發起 $q.all(req1,req2,req3.)。

我們在服務中這樣定義。在請求開始之間建立deferred,然後return deferred.promise.在獲取到資料的時候deferred.resolve(data)。相同我們在中間能夠收到通知或者拒絕等。

var def = $q.defer();

def.resolve(data);

return def.promise;

首先我們要了解一下幾點:

能夠參考我的上篇文章。

載入後的檔案怎樣註冊:

angular有個啟動函式。叫做bootstrap。

依據angular的**設計,你須要在啟動之前定義全部的controller。就好似有個袋子。你在bootstrap之前想往裡塞什麼就塞什麼。

但是一旦bootstrap了,他就不再接受你不論什麼往裡塞的controller了。

解決問題,僅僅有乙個方法,就是利用主模組的provider主動註冊controller。但是因為provider不能直接使用。所以我們把它存在主模組以下。

通過存下來的方法,能夠用來註冊非同步載入回來的頁面元件

通過上述我們知道了須要非同步載入檔案

// controller

function

($stateprovider, $urlrouterprovider, $controllerprovider) );

});//通過deferred延遲物件,能夠得到乙個承諾promise,而promise會返回當前任務的完畢結果

return def.promise;};}

$urlrouterprovider.otherwise('/index');

$stateprovider.state("index", );

$stateprovider.state("computers", }",

controller: "ctrl.file",

resolve:

});$stateprovider.state("printers", );

$stateprovider.state("blabla", );

}]);

});

// file.js

($scope) );

});

源**:

css動效學習

總結 transform定義了元素的變形,transition定義了元素的屬性變化樣式,animation與 keyframes則真正的讓元素動起來 不只是變到什麼狀態,更定義了中間過程,k幀 練習1 用css的transition屬性控制opacity和transform translate x,...

從遞迴到動規(學習筆記)

區別 動態規劃是由已知推未知,由子問題推大問題,由邊界值逆推,相當於遞迴的逆過程。解題思想 1.分解子問題 將原問題分為若干子問題,子問題形式與原問題相似,規模減小,子問題的解求出來即儲存,不影響其他子問題,避免重複求解。2.確定狀態 狀態就是與解相關的一組變數,例如數字三角形求到底邊最大值時,每個...

Silverlight動畫學習筆記 三 緩動函式

一 定義 緩動函式 可以將自定義算術公式應用於動畫 二 為什麼要用緩動函式 您可能希望某一物件逼真地彈回或其行為像彈簧一樣。您可以使用關鍵幀動畫甚至 from to by 動畫來大致模擬這些效果,但可能需要執行大量的工作,並且與使用算術公式相比動畫的精確性將降低。三 例項講解 usercontrol...