我需要從格式使用URL更改現有AngularJS應用:如何將我的AngularJS路線更改爲文件?param1 = a&param2 = b格式?
example.com/thePage/#/section/1/subsection/1
要由服務器與一個格式使部分&小節參數可讀像這樣:
example.com/thePage?section=1&subsection=1
環境不提供類似mod_rewrite的東西,所以我需要在Angular中更改路由以使其處理&生成這些URL。我相信我可以使用$locationProvider.html5Mode(true);
來做到這一點,但我不確定如何從那裏繼續。我已經試過了現有的路由更新喜歡的東西下面,但它未能返回視圖(好象路由不工作。
$stateProvider
.state('section', {
abstract: true,
url: '?section',
views: {
'header': {
template: '<h3></h3>'
},
'main': {
templateUrl: constants.baseUrl + 'views/section.html',
controller: 'sectionCtrl',
resolve: {
section: ['sectionervice', '$stateParams',
function (sectionervice, $stateParams) {
return sectionervice.getsection($stateParams);
}],
subsection: ['sectionervice', '$stateParams',
function (sectionervice, $stateParams) {
return sectionervice.getsubsection($stateParams);
}]
}
}
}
})
.state('section.detail.subsection', {
url: '&subsection=:sectionId',
views: {
'main': {
templateUrl: constants.baseUrl + 'views/section.detail.subsection.html',
controller: 'DictionaryCtrl'
}
}
});
看來$stateProvider
只能與正斜槓工作(/)參數分隔符。有另一種方式來實現這一目標?
從來沒有嘗試過干涉,但我喜歡思考重寫的東西ngRoute服務? – osmancode 2014-11-04 10:30:42
一個有趣的問題,但你爲什麼要在生產代碼中做到這一點?通常「角狀態」不是你的服務器需要知道或應該知道的;你的應用程序應該在客戶端的給定狀態下進行自我裝配。 – yerforkferchips 2014-11-04 14:04:02