首頁 > web前端 > js教程 > 主體

移除AngularJS下URL中的#字元的方法_AngularJS

WBOY
發布: 2016-05-16 15:53:54
原創
1021 人瀏覽過

AngularJS 預設將會使用一個 # 號來路由URL。

例如:

    http://example.com/

    http://example.com/#/about

    http://example.com/#/contact

要取得乾淨的URL並將井號從URL中移除是很容易的.

完成兩件事情就行了.

  1.     設定 $locationProvider
  2.     設定我們的相對連結的起點路徑

$location 服務

在Angular中, $location服務會解析地址欄中的URL,並對你的應用程式作出改變,反之亦然.

我強烈建議通讀官方的 Angular $location 文件 以對$location 服務及其所提供的特性有一個了解.

$locationProvider 與 html5 模式(html5Mode)

我們會使用 $locationProvider 模組,並將html5Mode設定為true.

我們會在你定義Angular應用程式並配置你的路由時做這些.
 

angular.module('scotchy', [])
  
 .config(function($routeProvider, $locationProvider) {
 
  $routeProvider
   .when('/', {
    templateUrl : 'partials/home.html',
    controller : mainController
   })
   .when('/about', {
    templateUrl : 'partials/about.html',
    controller : mainController
   })
   .when('/contact', {
    templateUrl : 'partials/contact.html',
    controller : mainController
   });
  
  // use the HTML5 History API
  $locationProvider.html5Mode(true);
 });
登入後複製

什麼是HTML5 History API? 它是使用一個腳本來操作瀏覽器歷史的標準方法. 有了它就能在不刷新頁面的前提下讓Angular 改變路由和頁面的URL. 更多的信息,這裡有一篇蠻好的HTML5 History API 文章.

為相對連結設定

為了在應用程式各處使用相對鏈接,你將需要在你文件的裡面設定一個.
 

<!doctype html>
<html>
<head>
 <meta charset="utf-8">
 
 <base href="/">
</head>
登入後複製

有大量的方法可以用來配置這個東西,而將HTML5Mode設定為true就會自動的解析相對連結了. 在我這兒這種方式總是能起效. 如果你應用程式的根同url相比有所不同,例如/my-base, 那就用那個作為你的起點路徑.

舊瀏覽器的回呼

$location服務對不支援HTML5瀏覽歷史API的瀏覽器會自動回呼hashbang方法。

一切的發生對你是透明的,你不需要為此做任何配置。從Angular $location文件中,你可以看到回調的方法已經它是如何運作的。

2015619153430123.jpg (567×311)
總結

這是一個在Angular應用中獲得漂亮URL並刪除哈希標記的簡單方法。享受超潔淨、超快速的Angular應用吧!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!