Angularjs $routeProvider-存储时传递给的var在哪里

Angularjs $routeProvider-存储时传递给的var在哪里,angularjs,Angularjs,我是个有棱角的业余爱好者。我使用路由提供程序加载单独的html页面和控制器。当我知道站点有哪些页面并且我可以定义它们时,这就很好了 app.config(function($routeProvider) { $routeProvider .when("/page1", { templateUrl: "../page1.html", controller: "Page1Ctrl" }) .whe

我是个有棱角的业余爱好者。我使用路由提供程序加载单独的html页面和控制器。当我知道站点有哪些页面并且我可以定义它们时,这就很好了

app.config(function($routeProvider) {
    $routeProvider
        .when("/page1", {
            templateUrl: "../page1.html",
            controller: "Page1Ctrl"
        })
        .when("/page2", {
            templateUrl: "../page2.html",
            controller: "Page2Ctrl"
        })
        .when("/page3", {
            templateUrl: "../page3.html",
            controller: "Page3Ctrl"
        })
        .otherwise({
            redirectTo: "/page1"
        });
});
然而,在将来,可能会添加更多的页面,我想为angular编写一种方法来考虑这一点。有点像

app.config(function($routeProvider) {

      (..figure out n...)

     $routeProvider
         .when("/page"+n, {
               templateUrl: "../page"+n+".html",
               controller: "Page"+n+"Ctrl"
         })
         .otherwise({
               redirectTo: "/page1"
         });
});
我不知道如何返回一个列有当前页面的
var
,这样我就可以删除“/page”来操作int作为
n

我尝试了控制台日志记录
$routeProvider
,但
只是返回一个函数。我不认为注入
$scope
是明智的,因为很明显,单独使用
$routeProvider
会在某处传递一个var。

如果在路由中使用冒号(:),Angular将解析它并用它填充$routeParams,然后,在templateUrl中,而不是在字符串中,可以使用返回模板url的函数。只需在templateUrl的函数中插入$routeParams,并构建所需的url

$routeProvider
  .when( '/page/:pageNumber', { 
      templateUrl: function ($routeParams) {
          return 'page_' + $routeParams.pageNumber + '.html'
      }
    })
 .otherwise( { redirectTo: '/page/1' } );

我不明白>>>我不知道如何返回一个列有当前页面的var,这样我就可以删除“/page”来操作int as n??使用route as/page/:num这对templateURL有用谢谢,但是如何在选择合适的控制器时也加入pageNumber呢?控制器:“Page”+pageNumber+“Ctrl”抛出未定义的错误使用ngRoute无法做到这一点,您可以在每个模板中使用ngController指令(如果不需要解析/注入任何内容),否则我建议您查看