ngroute支持多个url参数

时间:2014-10-31 16:19:00

标签: javascript angularjs

我在操作ng路由功能主义者方面存在重大差距。 这是我想要实现的目标:我有一个主页面指向dashboard.html和另一个 buildings.html。 可以使用许多参数调用建筑物页面,例如:id,type,color 所以传统的网址看起来像这样:

/buildings?id=110&type=special&color=red

据我所知,在角度ngroute中我应该有这样的结构:

$routeProvider

            // route for the main page which will direct to the buildings page
            .when('/', {
                templateUrl : 'web/pages/dashboard.html',
                controller  : 'dashboardController',
                controllerAs : 'dashboard'
            })

            // route for the main page which will direct to the buildings page
            .when('/buildings/:buildingId/:buildingType/:buildingColor', {
                templateUrl : 'web/pages/buildings.html',
                controller  : 'mainController',
                controllerAs : 'buildings'
            })
            ;

}); 

网址应该是:

/buildings/110/special/red

我没有得到的是如何拨打仅有ID或类型和颜色的建筑物页面? 如果我有7个参数并且只想触发一个只有3的调用,我该怎么做?

我使用$ location.path在需要时根据gui事件在页面之间切换,例如: $ location.path(' / buildings /' + $ scope.id);

感谢。

1 个答案:

答案 0 :(得分:0)

这里有三个选项:

  • 你要么输入你的参数,这样当你想使用参数5时,你肯定还必须定义先前的参数
  • 或者您可以使用一些代表null的字符,例如 - 或者其他东西。您的网址将显示为/buildings/5/-/red
  • 或者(最好的选择)你在URL(如ID)中保留必填参数,并将可选参数放在URL get参数中(就像你在oldschool样式参数中显示的那样)。然后,您的网址将如下所示:/buildings/5?color=red。您可以使用$location.search().color等从AngularJS访问这些参数。