1. 程式人生 > >UI-Router詳解

UI-Router詳解

我們瞭解 angular.js 是一種富客戶端單頁面應用,所以要在一個頁面呈現不同的檢視,路由起到了至關重要的作用.

angular.js :為我們封裝好了一個路由工具 ngRoute ,它是一種靠url改變去驅動檢視.

angularUI :也為我們封裝了一個獨立的路由模組 ui-router ,它是一種靠狀態 state 來驅動檢視.

後者有什麼優勢:一個頁面可以巢狀多個檢視,多個檢視去控制某一個檢視等.

咱們今天主要講解ui-router的基本模組,先上程式碼。

<!DOCTYPE html>
<html lang="en" ng-app="sunday">
<head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <a ui-sref="hello" ui-sref-active="active">hello</a> <br> <a ui-sref="world" ui-sref-active="active">world</a> <ui-view></ui-view> <script
src="js/angular.js">
</script> <script src="js/angular-ui-router.js"></script> <script src="js/index.js"></script> </body> </html>

基本的index.html,ui-sref表示指令連結到一個特定的狀態,一般情況下為替換檢視,替換檢視的部分為使用<ui-view></ui-view>所標記的區域。可以簡單的理解為<ui-view></ui-view>

起到的其實是一個佔位符的作用。

接下來咱們再看js程式碼。

(function(angular){

  angular.module('sunday',['ui.router'])
    .config(function($stateProvider){
      $stateProvider.state({
        name:'hello',
        url:'/hello',
        template:'<h3>hello world!</h3>'
      }).state({
        name:'world',
        url:'/world',
        template:'<h3>hello ui-router!</h3>'
      })
    });

})(angular);

在構造angular物件的時候,我們引入了 'ui.router' 模組,在angular物件的配製方法中,我們通過 ui-router提供的$stateProvider物件的 state方法去配置路由物件,name對應ui-sref中配置的值,使用template去替換<ui-view></ui-view>

那麼ui-router中的巢狀路由是如何使用的呢?來看我們修改之後的程式碼。

.state('world',{
        url:'/world',
        templateUrl:'world.html'
      })

我們對index.js進行了修改,使點選world的之後指向了一個 world.html 的模板。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>This is a world</title>
</head>
<body>

    <div>
      <a ui-sref=".world1" ui-sref-active="active">world-1</a>
      <br>
      <a ui-sref="world2" ui-sref-active="active">world-2</a>
    </div>

    <div ui-view style="margin-left: 50px"></div>

</body>
</html>

這是world.html中的程式碼,我們可以看到在world.html中我們建立了兩個 ui-sref 分別為:.world1和world2 ,相信看到這裡大家也都能知道了,ui-router其實就是通過 .語法 去進行的路由層級的配置。
來看一下新的 index.js的程式碼。

(function(angular){

  angular.module('sunday',['ui.router'])
    .config(function($stateProvider){
      $stateProvider.state('hello-world',{
        url:'/hello',
        template:'<h3>hello world!</h3>'
      }).state('world',{
        url:'/world',
        templateUrl:'world.html'
      }).state('world.world1',{
        url:'/world/world-1',
        template:'<h3>This is a World 1</h3>'
      }).state('world2',{
        url:'/world/world-2',
        template:'<h3>world2並不依賴於world,在我們點選它的時候,他會替換掉index.html中的<div ui-view></div></h3>'
      })
    });

})(angular);

index.html的程式碼

<!DOCTYPE html>
<html lang="en" ng-app="sunday">
<head>
  <meta charset="UTF-8">
  <title>Document</title>

  <style></style>
</head>
<body>

  <a ui-sref="hello-world" ui-sref-active="active">hello</a>
  <br>
  <a ui-sref="world" ui-sref-active="active">world</a>

  <div ui-view style="margin-left: 50px"></div>


  <script src="js/angular.js"></script>
  <script src="js/angular-ui-router.js"></script>
  <script src="js/index.js"></script>

</body>
</html>

相關推薦

深究AngularJS——ui-router

1.配置使用ui-router 1.1匯入js檔案 需要注意的是:必須匯入angular.min.js這個檔案,且angular.min.js必須匯入在angular-ui-router.min.js前面。 <script type="text/ja

UI-Router

我們瞭解 angular.js 是一種富客戶端單頁面應用,所以要在一個頁面呈現不同的檢視,路由起到了至關重要的作用. angular.js :為我們封裝好了一個路由工具 ngRoute ,它是一種靠url改變去驅動檢視. angularUI :也為我

Vue Router

公司統一技術框架,選型Vue,Vue全家桶也便成為接下來的學習使用技術框架之一了。接下來一起學習Vue Router。 Vue Router介紹 Vue Router是vue.js官方的路由管理器。它和vue.js的核心深度整合,讓構建單頁面應用變得易如反掌。它主要包含的功能有:

vue專案引入vux-ui框架(快速入門)

一、新建自帶vux框架的vue專案(免配置) 1、安裝vue環境 (已安裝,跳過這一步) 2、新建基於vux的vue專案; vue init airyland/vux2 projectName //(新建專案配置已省略) cd projectName

Android UI(SeekBar)

目錄:     1.SeekBar的應用場景     2.SeekBar的簡單使用與事件監聽     3.圖片資源自定義SeekBar+手機音量調節     4.xml繪製自定義SeekBar          1.SeekBar的應用場景     SeekBar的主要應用

七. Vue Router

#### 1. 認識路由 ##### 1.1 路由概念 **路由是什麼?** 路由是一個網路工程裡面的術語。 路由(routing)就是通過互聯的網路把資訊從源地址傳輸到目的地址的活動 --- 維基百科 **路由器提供了兩種機制:路由和轉送** 路由是決定資料包從來源到目的地的路徑 轉送將輸入端

UI Recorder 功能

斷言 完成 需要 加載完成 eight nal doc 字符 一段 前言: UI Recorder安裝教程見:UI Recorder 安裝教程(一)、UI Recorder 安裝教程(二) 本次著重介紹UI Recorder錄制過程中的功能按鈕:添加懸停,添加斷言,使用變量

UI自動化測試(二)瀏覽器操作及對元素的定位方法(xpath定位和css定位

cli 刷新 ota api enter 版本 ror apache 窗口 Selenium下的Webdriver工具支持FireFox(geckodriver)、 IE(InternetExplorerDriver)、Chrome(ChromeDriver)、 Opera

Vue-router的API

信息 是否 get active 表達式 狀態信息 額外 history 詳細 前面的話   本文將詳細介紹Vue-router的API router-link   <router-link> 組件支持用戶在具有路由功能的應用中點擊導航。 通過 to

Storm筆記整理(五):可靠性分析、定時任務與Storm UI參數

大數據 實時計算 Storm [TOC] 特別說明:前面的四篇Storm筆記中,關於計算總和的例子中的spout,使用了死循環的邏輯,實際上這樣做是不正確的,原因很簡單,Storm提供給我們的API中,nextTuple方法就是循環執行了,這相當於是做了雙層循環。因為後面在做可靠性acker案

【轉】Vue-設置路由導航的兩種方法: <router-link :to="..."> 和router.push(...)

name app query outer 參數 size 命名 字符 適用於 一、<router-link :to="...">  to裏的值可以是一個字符串路徑,或者一個描述地址的對象。例如: // 字符串 <router-link to="apple

jQuery-ui外掛datepicker的引數使用

轉載:https://blog.csdn.net/hliq5399/article/details/22406989 概述 日期選擇外掛是一個配置靈活的外掛,你可以定義它的展示方式,包括日期格式、語言、限制選擇日期範圍、新增相關按鈕以及其它導航等。

Android UI之顏色資源的使用

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Vue-設定路由導航的兩種方法:router-link和router.push

轉自:http://www.cnblogs.com/superlizhao/p/8527317.html 一、<router-link :to="...">  to裡的值可以是一個字串路徑,或者一個描述地址的物件。例如: // 字串 <router

vue-router 初始化時做了什麼

vue router 的初始化使用步驟 我們首先來看 vue-router 的使用步驟,然後再分別去看各個步驟都發生了什麼。 使用 vue-router 需要經過一下幾個步驟: 引入 vue-router: import VueRouter from 'vue-router'

【Mint-UI】Action sheet 用法及(內含取消事件的觸發方法)

鑑於mint-ui官方文件的極簡描述和對功能介紹的點到為止,許多功能的完全實現是需要通過閱讀原始碼才可以知道其真正的用法。 今天給大家介紹一下Action sheet的用法,以及我踩過的坑,感覺比較有意義,希望能幫到各位。 效果圖: 首先我先帶大家看一下官方的介紹: act

【Mint-UI】search元件的使用及(內含取消事件的觸發)

用過Mint-UI的同學都知道,Mint-UI的文件寫的極簡,剛接觸的同學難免會因為文件不夠詳細而暈頭轉向無法下手(日常吐槽) 由於專案的需要,入坑了mint-ui的search元件,文件寫的果然讓人摸不到頭腦。 下邊直接看效果: 我們開發的是基於微信瀏覽器的移動端專案,該圖是

react router @4 和 vue路由 (二)react-router @4用法

  完整版:https://www.cnblogs.com/yangyangxxb/p/10066650.html   2、react-router @4用法   a、大概目錄        不需要像vue那樣麻煩的用到

react router @4 和 vue路由 (一)vue路由基礎和使用

完整版:https://www.cnblogs.com/yangyangxxb/p/10066650.html 1、vue路由基礎和使用   a、大概目錄            我這裡建了一個router資料夾,資料夾下有index.html

react router @4 和 vue路由 (七)react路由守衛

完整版:https://www.cnblogs.com/yangyangxxb/p/10066650.html   12、react路由守衛?   a、在之前的版本中,React Router 也提供了類似的 onEnter 鉤子,但在 React Router 4.0 版