0

templateUrl が routeProvider で定義され、コントローラーで再定義される、不十分な解決策が見つかりました。しかし、それは 1 つの余分な要求です。(PS: 任意のフォルダーにテンプレートがあり、このテンプレートの名前を持つハッシュ ルートがあります。これを行うにはどうすればよいですか (現在のハッシュでテンプレートをレンダリングする)。)

たとえば、このコードは私の index.html テンプレートを ng-view タグでレンダリングします。

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:"/"})
})

どうやってやるの?

4

1 に答える 1

1

私は何か他のものを提案します。$routeProvider を「通常」にして、コントローラーを使用してテンプレートの ng-include へのパスを設定します。

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

PageController で $routeParams を注入し、それを使用してテンプレートのインクルードの URL を変更します。

$scope.include_url = $routeParams.page ; 

最後に、page.html テンプレートで次のように配線します。

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

テストされていません。変更や提案を受け付けています。

于 2013-01-11T20:35:42.057 に答える