web-dev-qa-db-ja.com

AngularJS-routeProviderの "when"変数を使用してtemplateUrl名を作成しますか?

これが私が達成しようとしていることです:

'use strict';

var app = angular.module('myModule', ['ngRoute']);

app.config(function($routeProvider) {
  $routeProvider
    .when('/', {
      redirectTo: '/pages'
    })
    .when('/pages/:pageName', {
      templateUrl: 'views/pages/'+pageName+'html',
      controller: 'MainController'
    });
});

基本的に、URIを使用して、使用するテンプレートを決定します。現在、理解しているpageNameが定義されていないというエラーが表示されます。これを行う別の方法は何でしょうか?ありがとう!

21
Georgi Angelov

templateUrlは、ルートパラメータのオブジェクトを受け入れる関数にすることができます。

.when('/pages/:pageName', {
    templateUrl: function(params) {
        return 'views/pages/' + params.pageName + '.html';
    },
    controller: 'MainController'
});
38
dfsq

templateUrlは、生成されたURLを返す関数として使用できます。 routeParamsを取る引数を渡すことでURLを操作できます。

例を参照してください。

.when('/:screenName/list',{
    templateUrl: function(params){
         return params.screenName +'/listUI'
    }
})

この助けを願っています。

5
Ravi K.