2017-05-27 67 views
0

我正在使用Angularjs(1.x)作爲Web框架的項目。在那個應用程序,我需要路由,所以我使用angular-ui-router。我在我的應用程序中配置了路線並且它的工作正常,但是感嘆號(!)在路線中對我來說並不清楚,爲什麼這些驚歎號會出現在路線中。使用angular-ui-router的路由中的感嘆號(!)

此外,我看到了由angular ui router提供的演示示例代碼。在Hello World tutorial,我觀察到的路線與哈希(#)但與感嘆號如(!)(!)https://some_url/#/home

Hello Solar System tutorial路線與哈希(#)感嘆例如。 https://some_url/#!/hello

兩個教程中的angular ui router配置都是相同的。這就是爲什麼我無法理解究竟在兩者中究竟有什麼不同。所以,我需要幫助來理解這一點。

任何有用的建議將不勝感激。

謝謝!

+0

在新版本中'angularjs'你看到'/#'在老版本中,你看到的只是'/#' –

+0

@Hadi:你說的新版本和舊版本'angularjs'的是什麼意思? –

+1

請參閱https://github.com/angular/angular.js/commit/aa077e81129c740041438688dff2e8d20c3d7b52 –

回答

0

讓每個人都知道這個問題的答案,加入我從評論中理解的內容。

可以在角度版本> 1.6.x中觀察到此更改。在以前的版本中,它僅僅是#(哈希爆炸)。 爲了得到像只#方式進行網址,你可以這樣簡單的寫,

appModule.config(['$locationProvider', function($locationProvider) { 
    $locationProvider.hashPrefix(''); 
}]); 

這種變化是在version 1.6.0介紹,你可以看到https://github.com/angular/angular.js/blob/master/CHANGELOG.md#location-due-to

而且,加入這裏寫的是什麼有:

哈希前綴$location哈希爆炸的網址已經從空字符串「」的一聲「變」!如果您的應用程序不使用HTML5 mode或在不支持HTML5 mode的瀏覽器上運行,並且您沒有指定自己的哈希前綴,則客戶端URL現在將包含「!」字首。例如,而不是mydomain.com/#/a/b/c將成爲mydomain.com/#!/a/b/c。