当前位置: 首页 > 面试题库 >

angularjs路由可以具有可选参数值吗?

谭修然
2023-03-14
问题内容

我可以设置带有可选参数的路由(相同的模板和控制器,但是如果某些参数不存在,则应将其忽略)?

因此,只编写一个规则,而不是编写以下两个规则?

module.config(['$routeProvider', function($routeProvider) {
    $routeProvider.
     when('/users/', {templateUrl: 'template.tpl.html', controller: myCtrl}).            
     when('/users/:userId', {templateUrl: 'template.tpl.html', controller: myCtrl})
}]);

这样的事情([此参数是可选的])

when('/users[/:userId]', {templateUrl: 'template.tpl.html', controller: myCtrl})
//note: this previous doesn't work

我在他们的文档中找不到任何内容。


问题答案:

看来Angular现在已对此提供支持。

从最新的(v1.2.0)文档中$routeProvider.when(path, route)

path可以包含带问号(:name?)的可选命名组



 类似资料:
  • 问题内容: 我可以在AngularJS中设置路由参数的默认值吗?有没有有办法,并通过相同的途径来处理? 我希望重构现有的代码,如下所示: 它可以工作,但不是很优雅。有没有更好的办法 ? 问题答案: 不允许使用路由参数的默认值。 但是(中的)路由 不应具有默认参数。 资源可以具有默认参数。 在如果你想使用一个可选的参数的路线,这实际上是两个不同的路线。 为什么? 路线应该很简单 路由不允许参数的正则

  • 所以我有一些路线,比如<code>/category/tech</code>和<code</categority/tech/new<code>和<code>/category/tech/old</code>等等 他们都使用 或者我必须分别定义它们,就像

  • 例如,在具有分页列表的路由上,网址可能如下所示,表示我们已加载第二个网页: 使用指令和来传递查询参数。例如: 或者,我们可以使用服务通过JS跳转: 读取查询参数 See Official Documentation on Query Parameters

  • 问题内容: 我有一条看起来像这样的路线: 但是,这行不通-如果我打电话,它会到达路线,但是如果我打电话,它不会。 是否可以有一个可选的splat参数,或者我必须使用正则表达式来检测到这一点? 编辑 : 更清楚地说,这是我要达到的要求: 第一和第二个参数是 必需的 第一个参数是静态的,第二个参数是命名的参数。 可以附加任意数量的 可选 附加参数,并且仍然可以实现。 问题答案: 这适用于Express

  • 我试图创建一个符合以下所有URL的路由: 这是我目前的路线: 根据关于https://github.com/rackt/react-router/blob/master/docs/guides/basics/RouteMatching.md 此路由应该完全匹配,但与上面的URL都不匹配。 我需要做什么来支持这个可选参数? 我在React路由器版本0.13.3,如果我删除,那么我可以匹配第一个URL