2013-01-11 68 views
0

我發現令人不滿意的解決方案,其中templateUrl在routeProvider中定義,並在控制器重新定義。但這是一個額外的要求。 (PS:我有我的模板在任何文件夾,我有這個模板名稱的散列路線,我怎麼能做到這一點(在當前散列呈現我的模板)?)沒有templateUrl的控制器或routeParams中的templateUrl在routeProvider中

例如,此代碼呈現我的索引在NG-view標記。html的模板:

angular.module('amiu', []) 
.config(function($routeProvider){ 
    $routeProvider 
    .when('/index/', {templateUrl:'partitials/index.html'}) 
}) 

但我想這樣做:

angular.module('amiu', []) 
.config(function($routeProvider, $routeParams){ 
    $routeProvider 
    .when('/:page/', {templateUrl:'template/'+$routeParams.page+'.html'}) 
    .otherwise({redirectTo:"/"}) 
}) 

我怎麼能這樣做?

+0

您可能需要張貼小提琴來展示您的問題。 –

回答

1

我會建議別的。 讓$ routeProvider「正常」,並使用控制器設置路徑爲NG-包括在您的模板:

$routeProvider 
    .when('/page/:page', {templateUrl:'template/page.html', 
    controller:"PageController"}); 
中的PageController

,注入$ routeParams,並用它來修改的URL中包括在您的模板中。

$scope.include_url = $routeParams.page ; 

finaly在page.html中的模板,同比增長線的東西:

<div data-ng-include="'template/page-'+include_url+'.html"></div> 

它尚未經過測試,我願意修改和建議。

+1

你基本上是建議在這篇文章中的答案? http://stackoverflow.com/questions/11534710/angularjs-how-to-use-routeparams-in-generating-the-templateurl – dnc253

+0

我不知道這樣的答案,但我想這是解決方案基本上。 – mpm

相關問題