angularjs ui-router 動態切換檢視到指定的ui-view中
任何 SPA 框架的路由系統都是一樣的:每一個路由對應著應用程式的狀態,而應用程式狀態的變化體現在 URLs 的變化上;反之也是,URLs 的變化將會引起路由系統動態的重新整理應用程式的狀態。
在你的例子,路由的入口只有恆定的一個 ui-view='content'
,但卻要不同的檢視(c.html
和 d.html
)動態的進入其中,這就意味著 c.html
和 d.html
要對應應用程式的不同狀態,路由系統才可以據此而動態的更新。
假設你的例子是這樣的:
-
當
/posts/show/c
的時候,ui-view='content'
顯示c.html
-
當
/posts/show/d
的時候,ui-view='content'
d.html
於是我們才可以對應到 ui-router 裡面:
-
state
是posts.show
-
動態片段,即 URLs 中可變的部分,對應
state
裡的url
,我把它命名為:name
-
view
的入口是[email protected]
這樣便足以寫出絕大部分程式碼了:
angular.module('YourApp').config(function ($stateProvider) {
$stateProvider.state('posts.show', {
url: '/show/:name',
views: {
' [email protected]': {
templateUrl: /* TODO */,
controller: ...
}
}
});
});
唯一剩下的問題是:當 :name
變化的時候,如何更新 templateUrl
?
之前說過的,URLs 的變化會引發路由系統更新應用程式的狀態,這些變化在路由系統中被儲存在 $params
物件中,我們可以用該物件提取變化的部分並生成正確的 templateUrl
。在這裡我寫一個助手函式來做這件事情:
angular.module('YourApp' ).config(function ($stateProvider) {
$stateProvider.state('posts.show', {
url: '/show/:name',
views: {
'[email protected]': {
templateUrl: getTemplateUrl,
controller: ...
}
}
});
function getTemplateUrl() {
return: 'templates/posts/' + $params.name + '.html';
}
});
ui-router 這個模組,templateUrl
不只是接收字串,也可以接收函式的返回值。於是你可以得到:
-
當
/posts/show/c
的時候,templateUrl
是templates/posts/c.html
-
當
/posts/show/d
的時候,templateUrl
是templates/posts/d.html
相應的,在你 index
裡的導航連結就要負責切換 /posts/show/:name
的變化,如何生成對應動態片段的連結在
ui-router 的文件裡有,自己去找來看吧。
相關推薦
angularjs ui-router 動態切換檢視到指定的ui-view中
任何 SPA 框架的路由系統都是一樣的:每一個路由對應著應用程式的狀態,而應用程式狀態的變化體現在 URLs 的變化上;反之也是,URLs 的變化將會引起路由系統動態的重新整理應用程式的狀態。 在你的例子,路由的入口只有恆定的一個 ui-view='content',但
【vue.js】藉助vue-router實現切換檢視(元件)的demo
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" c
angularJs模組ui-router之狀態巢狀和檢視巢狀
狀態巢狀的方法 狀態可以相互巢狀。有三個巢狀的方法: 使用“點標記法”,例如:.state('contacts.list', {})使用parent屬性,指定一個父狀態的名稱字串,例如:parent: 'contacts'使用parent屬性,指定一個父狀態物件,例如
AngularJS學習之 ui router
ron span 登陸 也有 con 列表 tro 默認 blog 1.安裝 bower install --save angular_ui-router 2.在項目主頁面 index.html中添加 <div ui-view=""></ui-vie
AngularJS ui-router (嵌套路由)的簡單學習
size 鏈接 wid page 學習 pre template ava 頁面 今天讓我們一起來學習一下AngularJS裏的嵌套路由。 ui-router和同屬AngularJS框架一部分的ng-route一樣強大. ui-router提供了讓我們可以做路由
AngularJS,ui-router快速清除url引數
哈,好久不用AngularJS 檢視原始碼得知,https://cdn.bootcss.com/angular-ui-router/1.0.20/angular-ui-router.js 在老版本上也可以用,例如0.2.15版本,附送demo一隻~ <!D
AngularJS進階 一 深入理解ANGULARUI路由 UI-ROUTER
深入理解ANGULARUI路由_UI-ROUTER 最近在用 ionic寫個webapp 看到幾個demo中路由有好幾種,搞的有點暈,查下資料研究下,做個筆記,其中大部分為摘抄別人的,做個說明免得被人吐槽。 Angularjs&nbs
AngularJS路由之ui-router(二)
模組建立時新增模組依賴“ui.router” var app = angular.module('myApp', ['ui.router']);後就可以使用一個叫做$state的服務,使用$stateProvider來配置這個服務. $stateProvider和angu
AngularJS路由之ui-router(三)
一、為ui-router新增進度條 在使用動態控制器或者ajax,新增資料的時候需要進度條提示, 我們可以使用路由狀態的事件新增全域性進度條提示 $stateChangeStart: 當狀態開始改變時觸發 $stateChangeSuccess: 當狀態改變結束時觸發 二
第3篇:angularJS使用ui-router的巢狀路由配置
引入js檔案: <script type="text/javascript" src="lib/angular/angular-1.3.0.js"></script>
angularJS+ui-router+requireJS非同步載入controller、directive、filter
開發比較複雜的單頁面應用時,往往包括比較多的控制器、服務等,如果這些js檔案都在頁面開啟時就全部載入,往往載入量大,耗時長;因此,當開啟對應的頁面才載入響應的控制器等資源時,能一定程度地優化頁面載入速度。 · 專案目錄結構: · index.html:
AngularJs之ui.router路由基本配置及傳參方法
使用AngularJs可以方便的做出單頁面應用,既然是應用,那就涉及到頁面跳轉的問題,使用Angularjs的路由外掛可以方便的使用路由功能,而且可以傳參非常容易。程式碼如下:路由外掛:angular-ui-router.js。檔案:index.html01<!DOCT
AngularJs ui-router 路由的簡單介紹
以上程式碼修飾了“views”直接通過state的名稱繫結完對應的頁面模板。 state(name,stateConfig); 註冊一個狀態,並給定其配置。 引數: name:狀態的名稱。 stateConfig:狀態配置物件。配置具有以下各項屬性: template: string/func
2、Angular-Ui Router 巢狀狀態和巢狀檢視
Methods for Nesting States巢狀狀態的方法States can be nested within each other. There are several ways of nesting states:狀態可以相互巢狀,巢狀狀態有幾種方法:Using
AngularJS ui-router (巢狀路由)
我們都知道,如果使用原生路由的話,Angular的檢視是通過ng-view這個指令進行載入的。比如這樣:<div ng-view></div>。一般,我們都會把這個指令放在index.html這個檔案裡面,然後,通過控制器來載入相應的模板檢視。比
第26篇:AngularJS+ui-router實現一個超簡單的登陸和跳轉的二級路由demo
1.頁面結構介紹: 1)index.html:頁面入口檔案; 2)views資料夾下: login資料夾下:登陸頁面和對應控制器; home資料夾下: home.html/home.js:二級路由頁面和對應的控制器 adv/list資料夾:二級頁面和對應的控制器檔案 3)
深究AngularJS——ui-router詳解
1.配置使用ui-router 1.1匯入js檔案 需要注意的是:必須匯入angular.min.js這個檔案,且angular.min.js必須匯入在angular-ui-router.min.js前面。 <script type="text/ja
angular-ui-router 多檢視views
UI Router 中有三種方式啟用一個路由: (1)$state.go():優先順序較高的便利方式 (2)ui-sref:點選包含此指令跳轉 (3)url:url導航 一、$state.go() (1)$state.go(to [, toPa
AngularJS學習筆記--002--Angular JS路由外掛ui.router原始碼解析
路由(route),幾乎所有的MVC(VM)框架都應該具有的特性,因為它是前端構建單頁面應用(SPA)必不可少的組成部分。 那麼,對於angular而言,它自然也有內建的路由模組:叫做ngRoute。 不過,大家很少用它,因為它的功能太有限,往
AngularJS路由之ui-router(一)
在angular1有內建的路由服務,使用$route可以幫助實現路由的切換,檢視的改變,但是$route只是包含了基本的功能,在很多場合不夠用。 uiRouter是第三方js庫。需要引入“angular-ui-router.min.js”檔案。 在Asp.Net中引入