ほとんどのリクエストを処理する一般的なルートを定義しようとしています。機能を追加するたびにルートを追加することは、私が気分が悪く、保守しにくいと感じていることです。
したがって、私の目標は、汎用ルートを作成し、依存関係を動的に解決することです。これには、すべての依存コントローラーとサービス ファイルの解決、templateUrl の解決、およびコントローラー名の解決が含まれます。controller name 以外のすべてを解決/構築できます。助けてください
カスタムリゾルバーを使用した私のルート:
$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