摘要:關(guān)于應用程序的行為類似于狀態(tài)機。將應用程序的每個功能視為一組狀態(tài)。當嵌套狀態(tài)處于活動狀態(tài)時,該片段將附加到瀏覽器中父狀態(tài)的。父狀態(tài)可用于限制對整個子狀態(tài)樹的訪問,但本身不提供任何。如果方案返回,則轉(zhuǎn)換將暫停,直到解決狀態(tài)頂級狀態(tài)嵌套狀態(tài)
關(guān)于state
UI-Router應用程序的行為類似于狀態(tài)機。
將應用程序的每個功能視為一組狀態(tài)。一次只能有一個狀態(tài)為活動狀態(tài)。用戶可以從一種狀態(tài)轉(zhuǎn)換到另一種狀態(tài),以激活應用程序的不同功能。
UI路由器狀態(tài)UI-Router應用程序的基本構(gòu)建塊是UI-Router狀態(tài)。
UI-Router狀態(tài)通常對應于應用程序中的整個UI和導航的特征(或位置)。state一些例子可能是dashboard,messages,shoppingcart,或blogentry。
狀態(tài)是一個具有特定屬性的JavaScript對象。這些屬性定義了該狀態(tài)處于活動狀態(tài)時應用程序的功能。
狀態(tài)的屬性 name
state的名稱,提供了一種參考state的方
views
視圖,用戶界面的外觀和行為如何
url
瀏覽器的URL將會是什么
params
該state要求的參數(shù)值(如blog-post-id)
resolve
狀態(tài)所需的實際數(shù)據(jù)(通常使用參數(shù)值從后端異步獲取)
UI-Router狀態(tài)是分層的;UI-Router狀態(tài)可以互相嵌套,形成一棵state樹。
子狀態(tài)可以繼承其父狀態(tài)的數(shù)據(jù)和行為(例如認證),它們在父狀態(tài)的UI內(nèi)被渲染呈現(xiàn)。
UI-Router以應用程序作為狀態(tài)樹的方法鼓勵您將應用程序視為功能層次結(jié)構(gòu)。樹定義了應用程序的功能結(jié)構(gòu)。URL和視圖(即,DOM中組件的渲染樹)是活動狀態(tài)的工件。
url可選的。狀態(tài)的URL實際上是一個URL片段。每個狀態(tài)只定義它“擁有”的URL的片段(部分)。當嵌套狀態(tài)處于活動狀態(tài)時,該片段將附加到瀏覽器URL中父狀態(tài)的url。
視圖可選的。您可能會創(chuàng)建父狀態(tài),僅用于將數(shù)據(jù)或行為添加到應用程序分支。
例如,您可以創(chuàng)建一個名為狀態(tài)admin,然后為您的應用中的每個管理功能創(chuàng)建子狀態(tài)。父admin狀態(tài)可用于限制對整個子狀態(tài)樹的訪問,但本身不提供任何UI。
在激活每個嵌套狀態(tài)時,其視圖將被渲染到其父的嵌套視圖uiview中。
多個命名視圖 轉(zhuǎn)換(transition)描述:更改應用程序狀態(tài)的過程稱為轉(zhuǎn)換。狀態(tài)機從一個狀態(tài)轉(zhuǎn)換到另一個狀態(tài)。
轉(zhuǎn)換的生命周期注意:
1. 一次只能運行一個轉(zhuǎn)換。如果上一次轉(zhuǎn)換在新轉(zhuǎn)換開始時仍在運行,則路由器將中止前一轉(zhuǎn)換。
2. 如果試圖轉(zhuǎn)換到當前狀態(tài)和參數(shù),則路由器將忽略轉(zhuǎn)換嘗試。這可能發(fā)生,例如,當用戶點擊到當前激活狀態(tài)的鏈接時。
3. 如果正在運行轉(zhuǎn)換,并嘗試轉(zhuǎn)換到相同的目標狀態(tài)和參數(shù),則路由器會忽略第二次嘗試。這可能發(fā)生,例如,當用戶點擊一個鏈接兩次,但第一個轉(zhuǎn)換尚未完成。
轉(zhuǎn)換的鉤子函數(shù)每一個生命周期事件都有一個鉤子注冊方法
There is a hook registration method for each lifecycle event:
onBefore, onStart, onExit, onRetain, onEnter, onFinish, onSuccess, and onError
$stateProvider:Because $stateProvider is an Angular Provider, you must inject it into a .config() block using AngularJS Dependency Injection.
myapp.config(function ($stateProvider) { $stateProvider.state({ name: "hello", url: "/hello", component: "hello" }) });resolve
resolve:塊是狀態(tài)定義上的一個對象。每個鍵都是要加載的一些數(shù)據(jù)的名稱,每個值都是一個返回數(shù)據(jù)承諾的函數(shù)。UI-Router會在激活狀態(tài)state之前執(zhí)行resolve.resolve過程是異步的。如果resolve方案返回Promise,則轉(zhuǎn)換將暫停,直到Promise解決
state狀態(tài):頂級狀態(tài)(hello、about、people、person、people2)/嵌套狀態(tài)(people2.person)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/93028.html
摘要:回調(diào)說白了,就是把函數(shù)當參數(shù)傳給另一根函數(shù),在另一個函數(shù)執(zhí)行時調(diào)用此函數(shù)例如,在下面這段代碼中,上面定義了兩個函數(shù)和,下面的方法請求成功執(zhí)行,失敗執(zhí)行異步異步的原理我看了網(wǎng)上的一些博客和例子,大都以定時任務為例子說明,但具體的原理我還是不太 回調(diào) 說白了,就是把函數(shù)當參數(shù)傳給另一根函數(shù),在另一個函數(shù)執(zhí)行時調(diào)用此函數(shù)例如,在下面這段代碼中,上面定義了兩個函數(shù)success和error,下...
摘要:回調(diào)說白了,就是把函數(shù)當參數(shù)傳給另一根函數(shù),在另一個函數(shù)執(zhí)行時調(diào)用此函數(shù)例如,在下面這段代碼中,上面定義了兩個函數(shù)和,下面的方法請求成功執(zhí)行,失敗執(zhí)行異步異步的原理我看了網(wǎng)上的一些博客和例子,大都以定時任務為例子說明,但具體的原理我還是不太 回調(diào) 說白了,就是把函數(shù)當參數(shù)傳給另一根函數(shù),在另一個函數(shù)執(zhí)行時調(diào)用此函數(shù)例如,在下面這段代碼中,上面定義了兩個函數(shù)success和error,下...
摘要:被認為是為開發(fā)者提供的最實用的一個模塊。與集成的服務不同的是,可以將視圖嵌套,因為它基于的是操作狀態(tài)而僅非。與傳統(tǒng)做法使用不同的是,在里需要使用服務。當在中處理路由和狀態(tài)時,開發(fā)者的重心是當前的狀態(tài)是什么以及在哪一個頁面里。 初學angularjs,第一個實例是官網(wǎng)的phoneCat,里面路由用的是ngRoute,后來看到別的用ui-router,覺得好奇,ui-route是什么呢?百...
摘要:異步加載各個組件就很有必要。在這里我就以為框架來進行異步加載說明。而為了將服務進行異步加載我們不能用普通的或者。而需要調(diào)用或者如果采用進行編譯打包的話就需要的支持,這樣可以對進行拆分打包,達到異步加載的目的。 ui-route相比于angularjs的原生視圖路由更好地支持了路由嵌套,狀態(tài)轉(zhuǎn)移等等。隨著視圖不斷增加,打包的js體積也會越來越大,比如我在應用里面用到了wangeditor...
閱讀 2659·2021-11-23 09:51
閱讀 3251·2021-11-22 14:44
閱讀 4579·2021-11-22 09:34
閱讀 5117·2021-10-08 10:14
閱讀 2427·2021-09-22 15:47
閱讀 3510·2021-09-22 15:40
閱讀 1515·2019-08-30 15:44
閱讀 1624·2019-08-28 18:23