【问题标题】:Angularjs + ui-router: navigate according to the href, instead of the ui-srefAngularjs + ui-router:根据 href 导航,而不是 ui-sref
【发布时间】:2015-08-26 06:28:44
【问题描述】:

是否有“强制”ui-router 根据其“href”属性访问链接的方法? 我的意思是我有一个锚标签:<a href="#mystate/89/10/items" ui-sref="my.category.subcategory.items({sub_category_id: 10})">Link</a>。当我单击它时,我不知道幕后发生了什么以及路由器的工作原理,但我收到一个错误,指出缺少一些 $stateParams。另一方面,在新选项卡中打开此链接时,一切都按预期进行。这就是为什么我想找到一种方法来“忽略” sref 并使链接的行为就像在新标签页中打开一样。

【问题讨论】:

  • 你不能把 href 和 ui-sref 放在一起,一个或另一个不能两个。然后查看您的路线配置应该很有用。

标签: angularjs angular-ui-router


【解决方案1】:

幕后发生的事情是 ui-router 根据您通过ui-sref 传递的状态创建href。不要在您的<a> 上同时使用hrefui-sref。如果您想忽略 sref,只需将其从代码中删除即可。

关于错误,$stateParams 丢失,请分享控制器代码。显然,您的控制器需要一些参数,我假设是 sub_category_id: 10 基于 ui-sref 参数。

【讨论】:

  • 我不一起使用它们。这是生成的“href”。在我的代码中只有 ui-sref。
  • href 中创建的链接与您希望ui-sref 为您创建的链接不一样吗? ui-sref="my.category.subcategory.items({sub_category_id: 10})" 创建 href="#mystate/89/10/items"。那么,这不是您期望的链接吗?
  • 实际上它是正确且预期的链接。但是我在路上丢失了原来的 $stateParams。发生这种情况是因为我导航到一个未嵌套在 my.category.subcategory 状态中的状态(而 my.category.subcategory 状态一直显示 - 感谢 ui-router extras plugin 的“粘性状态”功能) - 这就是我想使用参考文献。
  • 我不确定我理解你所说的I loose the original $stateParams in the way 是什么意思,但是如果它是 URL 的一部分,目标状态必须具有这些 stateParams。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-19
  • 2019-03-22
  • 2014-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多