關於AngularJs中的路由學習總結

来源:http://www.cnblogs.com/jtjds/archive/2016/08/06/5743855.html
-Advertisement-
Play Games

AngularJs中的路由,應用比較廣泛,主要是允許我們通過不同的url訪問不同的內容,可實現多視圖的單頁web應用。下麵看看具體怎麼使用。 關於路由 通常我們的URL形式為http://jtjds.cn/first/page,但在單頁web應用中angularjs通過#+標記實現,比如下麵的頁面, ...


  AngularJs中的路由,應用比較廣泛,主要是允許我們通過不同的url訪問不同的內容,可實現多視圖的單頁web應用。下麵看看具體怎麼使用。

  關於路由 

     通常我們的URL形式為http://jtjds.cn/first/page,但在單頁web應用中angularjs通過#+標記實現,比如下麵的頁面,將是下文中的路由列子。

http://192.168.1.109:8000/angular-program/src/main.html#/pagetable/page1
http://192.168.1.109:8000/angular-program/src/main.html#/pagetable/page2
http://192.168.1.109:8000/angular-program/src/main.html#/pagetable/page3

當我們點擊以上任一一個鏈接時,向伺服器請求的地址都是http://192.168.1.109:8000/angular-program/src/main.html ,而#號之後的內容在向伺服器端請求時會被瀏覽器忽略掉,所以我們在客戶端實現#號後面的功能實現即可。簡單來說,路由通過#+標記幫助我們區分不同邏輯頁面,並將其綁定到對應的控制器上。

每個頁面均有一個控制器控制,通過路由,從而將不同的頁面展示出來。

 如何使用路由?

 新建main.html

<!doctype html>
<html ng-app="myapp">
     <head>
         <meta charset="utf-8">
         <script src="angular.min.js"></script>
         <script src="angular-ui-router.min.js"></script>         
         <script src="app.js"></script>
     </head>
     <body> 
        <!-- 引入angularjs框架和ui-router框架,引入app.js框架 -->
        <h1>AngularJS 路由跳轉</h1> 
        <div ui-view=""></div>     --展示page.html的頁面內容
    </body>
</html>

新建pagetable.html頁面

<!DOCTYPE html>
<div>
     <div>
         <span style="width:100px" ui-sref=".page1"><a href="">首頁</a></span>
         <span style="width:100px" ui-sref=".page2"><a href="">關於我</a></span>
         <span style="width:100px" ui-sref=".page3"><a href="">留言板</a></span>
     </div>
     <div>
          <div ui-view=""></div>  --展示page1,page2,page3頁面的內容
     </div>
</div>
  

新建page1.html頁面

<!DOCTYPE html>
        <div>
            <div>
               <h1>11111111111111111111</h1>
            </div>
        </div>  

新建page2.html頁面

<!DOCTYPE html>
<div>
    <div>
       <h1>22222222222222222</h1>
    </div>
</div>     

新建page3.html頁面

<!DOCTYPE html>
        <div>
            <div>
               <h1>333333333333333</h1>
            </div>
        </div>  

app.js內容

var app=angular.module("myapp",['ui.router']);//聲明angualrjs模塊,並把ui-router傳人angularjs模塊
app.config(function ($stateProvider, $urlRouterProvider) { //聲明把$stateprovider和$urlrouterprovider路由引擎作為函數參數傳人,為應用程式配置路由 $urlRouterProvider.otherwise("/pagetable"); $stateProvider .state("pagetable", { url: "/pagetable", templateUrl: "pagetable.html" //第一個顯示出來的頁面 }) .state("pagetable.page1", { url:"/page1", templateUrl: "page1.html" // }) .state("pagetable.page2", { url:"/page2", templateUrl: "page2.html" }) .state("pagetable.page3", { url:"/page3", templateUrl: "page3.html" }); });

下麵解釋下配置路由的意思。angularjs使用UI-rooter將其傳人angularjs模塊。OK,我們將項目運行起來,如果時本地直接打開的話,在非safari下麵運行,會出現跨域的問題,我們來看下。即只有在safari下才能正常打開,以本地的file://開頭的在其它瀏覽器下是不能打開文件的。主要是js同源策略的影響。

那麼如何將項目運行在伺服器上跑起來呢?提供一個工具:https://www.npmjs.com/package/anywhere 可實現簡單頁面運行。具體安裝看文檔說明。OK,現在讓我們啟動項目,

現在讓我們看下運行的效果:如下圖所示

點擊不同的鏈接,下麵將會顯示不同的頁面。那麼簡單的路由跳轉就完成啦。簡單來首,路由問題,比較簡單,即如何控制多個頁面在同一頁面下跳轉?


 作者:婷風

 出處:http://www.cnblogs.com/jtjds/p/5743855.html 

 如果您覺得閱讀本文對您有幫助,請點一下“推薦”按鈕,您的“推薦”將是我最大的寫作動力!歡迎各位轉載,但是未經作者本人同意 

轉載文章之後必須在 文章頁面明顯位置給出作者和原文連接否則保留追究法律責任的權利。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <style type="text/css"> *{ padding: 0; margin: 0; } height: 100%; } body{ posit ...
  • 一. 不動,區域內的變化(本質生產一張圖片) /*漸變 1 長方形之漸變先定義長方形的寬高大小(好觀察最好加邊框) /*方向 顏色 位置*/ 利用 background-image: -webkit-linear-gradient(right top,red 50% ,blue 50%); 2 大圓 ...
  • 這個系列的第一部分介紹了Javascript模塊的基本寫法,今天介紹如何規範地使用模塊。 (接上文) 七、模塊的規範 先想一想,為什麼模塊很重要? 因為有了模塊,我們就可以更方便地使用別人的代碼,想要什麼功能,就載入什麼模塊。 但是,這樣做有一個前提,那就是大家必須以同樣的方式編寫模塊,否則你有你的 ...
  • 隨著網站逐漸變成"互聯網應用程式",嵌入網頁的Javascript代碼越來越龐大,越來越複雜。 網頁越來越像桌面程式,需要一個團隊分工協作、進度管理、單元測試等等......開發者不得不使用軟體工程的方法,管理網頁的業務邏輯。 Javascript模塊化編程,已經成為一個迫切的需求。理想情況下,開發 ...
  • 1. 說明 Angular2的模板用來顯示組件外觀,作為視圖所用,用法和html語法基本一致,最簡單的Angular2的模板就是一段html代碼。Angular模板語法主要包括以下幾個部分: l 直接綁定 l 插值表達 l 屬性綁定 l 事件綁定 l 雙向綁定 l 樣式綁定 l 模板和 * l 局部 ...
  • [1]typeof [2]instanceof [3]constructor [4]Object.prototype.toString ...
  • 獲取url地址?後面參數值的寫法 正則: 另一種: ...
  • Document 對象時通往DOM功能的入口,它向你提供了當前文檔的信息,以及一組可供探索、導航、搜索或操作結構與內容的功能。 我們通過全局變數document訪問Document對象,它是瀏覽器為我們創建的關鍵對象之一。Document對象提供了文檔的整體信息,並讓你能夠訪問模型里的各個對象。簡單 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...