【问题标题】:Angular UI route parametersAngular UI 路由参数
【发布时间】:2016-10-19 14:26:39
【问题描述】:

我的 route.js 中有这个模式

.state('organizations', {
        url: '/companies/:options?/:keyvalue',
        templateUrl: '../app/components/organizations/organization.html',
        controller: 'OrganizationController',
        controllerAs: 'organizationsCtrl'
      })

当我尝试访问 URL 时

/companies/
/companies/users

它工作正常,但是当我尝试时

/companies/users/1

它重定向到默认视图

// For any unmatched url, redirect to /dashboard
    $urlRouterProvider.otherwise('/dashboard');

谁能帮我看看我做错了什么? 谢谢!

【问题讨论】:

  • 为什么在 url 中有?
  • 我用它来设置这是一个可选参数,正如我在另一篇文章中看到的那样

标签: angularjs angular-ui-router url-routing angular-routing angular-ui-router-extras


【解决方案1】:

我想你想让options 参数可选。

UI Router 中的路由参数默认是可选的。

路由参数上的? 后缀只是告诉 UI Router URL 模板的查询部分应该从哪里开始

你的网址应该看起来像这样url: '/companies/:options/:keyvalue'

这将匹配

/companies/
/companies/users/
/companies/users/1

【讨论】:

  • 没有 ? ,我什至无法访问 /companies/ 这就是我添加它的原因
  • 如果你去/companies/users/1那去否则状态?
  • 没错,但是,如果我把 ?在 url: '/companies/:options?/:keyvalue' 上,至少转到 /companies/ /companies/users/
  • 删除?。它确实说该参数是可选的。
  • 我做到了,但现在我什至无法访问/companies,真的很奇怪
猜你喜欢
  • 2014-09-18
  • 2016-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多