在我的模板中我想使用相對路徑。目前,我有絕對路徑在我的錨href
的,這是最理想的AngularJS中的相對鏈接
<a href="/#/dashboard/settings">Settings</a>
我怎麼可以重寫這是一個相對導航(在這個相對dashboard
)?
它應與hashbang和HTML5歷史API路線(取AngularJS使用或回退到)
在我的模板中我想使用相對路徑。目前,我有絕對路徑在我的錨href
的,這是最理想的AngularJS中的相對鏈接
<a href="/#/dashboard/settings">Settings</a>
我怎麼可以重寫這是一個相對導航(在這個相對dashboard
)?
它應與hashbang和HTML5歷史API路線(取AngularJS使用或回退到)
我不認爲你可以重寫它使用相對導航工作。如果你想鏈接到/user/profile
,但你的用戶在/dashboard/settings
上,相對工作如何。如果主導航簡單地鏈接到profile
(相對),它將轉到/dashboard/profile
,我認爲這不是您想要的。
爲什麼相對路徑在您的應用程序中如此重要?任何比儲蓄擊鍵更多的東西?
在你的控制器中,你可以看看$routeParams
並建立一個基地網址來操作。
從那裏,你的模板可以針對"{{baseUrl}}/relative/to/scope/baseUrl"
而且你的代碼中內置的URL操作可以去$scope.baseUrl + /relative/to/scope/baseUrl";
這不正是「相對的」,但它確實解決了允許的URL提煉其他網址,而不必問題硬編碼層次結構並擔心變量等的routeparams。
我不知道你的角度版本,但在我的1.2.18,當你設置
<base href="/base"></base>
,每當你的元素HREF,你開始與「相對/到/你/ URL」,那麼你的鏈接將指向 「/基/親戚/到/你/ URL」:
<a href="relative/to/you/url"></a>
注:我已經打開了HTML5 API模式$ locationProvider:
$locationProvider.html5Mode(true);
編輯:請參閱<base>
標記的MDN文檔。 https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base
老問題,但我發現這工作:
$locationProvider.html5Mode({
enabled: true,
requireBase: false,
rewriteLinks: false
});
有至少以某種方式告訴角度來自動替換'/#/'前綴'/'如果HTML5路由可用(或反之亦然)? – 2013-05-03 23:42:39
是的,如果您使用帶有'.html5Mode(true)'的'$ locationProvider':http://docs.angularjs.org/guide/dev_guide.services.$location – Langdon 2013-05-03 23:45:01
我已經使用了它,但它不能替代散列,只是逃避'/#%2Fdashboard%2Fsettings'。 – 2013-05-03 23:45:57