2016-04-19 21 views
3

現在、私は次のコードでAngularJsのルーティングメカニズムを追加することができる午前:角度ルートに変数名を渡す

App.config(function($routeProvider, $locationProvider) { 
    $routeProvider 
     .when('/', { 
       templateUrl : '/templates/home.html', 
       controller : 'landing' 
      }) 
     .when('/login', { 
       templateUrl : '/templates/login.html', 
       controller : 'login' 
      }); 
}); 

私は必要なもの/template/:appname.htmlと呼ばれるテンプレートを取得する必要があり/app/:appnameのような形式のURLです。

$routeParams.appname; 

しかし、このパラメータに基づいてテンプレートをレンダリングするにはどうすればよいですか?

答えて

1

あなたはこれを行うことができます:

AppCtrlで

、アプリ-template.htmlで

App.controller('AppCtrl', AppCtrl); 

AppCtrl.$inject = [ 
    '$scope' 
    'appPath' 
]; 

function AppCtrl($scope, appPath) { 
    $scope.template = appPath + '.html'; 
} 

は、そのよう

<div ng-include src="template"></div> 

希望としてng-includeを使用し、このことができます。

1

templateUrlは、URLを返す関数として使用できます。

App.config(function($routeProvider, $locationProvider) { 
    $routeProvider 
     .when('/', { 
      templateUrl : '/templates/home.html', 
      controller : 'landing' 
     }) 
     .when('/:appname',{ 
      templateUrl: function(params){ 
       return "templates/"+params.appname +".html" 
      }, 
      controller: 'Ctrl' 
     }); 
}); 
+0

申し訳ありませんが、正しい回答は複数回答できません。上記の両方があり、働いています。 :) – georoot

関連する問題