我想要定義一個處理大部分請求的通用路由。爲每個功能添加添加路由是我覺得不好,不可維護的。如何在angularjs中從路由構造控制器名稱
所以我的目標是編寫一個通用路由並動態地解決這些問題,包括解析所有相關的控制器服務文件,解析templateUrl和解析控制器名稱。 我可以解決/構造除控制器名稱以外的所有內容。請幫我身邊
我與自定義解析路線的方式:
$routeProvider
.when('/:module/:controller/:action?', routeResolver.resolve())
在我的自定義解析:
function routeResolverProvider(){
this.$get= function(){
return this;
}
this.resolve = function (options) {
var route = {};
route.templateUrl = function (params) {
var path = String.format('/app/components/{0}/{1}.view.html', params.module, params.controller);
return path;
};
//================================================================================
route.controller='THIS IS WHAT I WANT TO CONSTRUCT FROM ROUTE as templateUrl'
//================================================================================
route.resolve = {
loadDependencies: ['$q', '$rootScope', '$route', function ($q, $rootScope, $route) {
// MY RESOLVE LOGIC HERE
// I construct dependent file path from route values
// String.format('/app/components/{0}/{1}.controller.js', params.module, params.controller);
}]
};
return route;
}}
app.provider('routeResolver', routeResolverProvider)
一些好文章: https://github.com/angular/angular.js/wiki/Understanding-Dependency-Injection https://medium.com/opinionated-angularjs/advanced-routing-and-resolves-a2fcbf874a1c
'我試圖定義一個通用路由,它將處理大部分請求'你不能只用'otherwise'嗎? – dfsq 2014-11-04 12:50:08