2017-04-12 61 views
0

在我们这样做(与UI的路由器)AngularJS当定义一个状态:Angular是否命名了像UIRouter这样的路由或状态?

.state('myState', { 
    url: 'some-user-friendly-url' 
    ... 
}) 

因此,我们有一种方法来设置urlname。很高兴有这样的网址,我们不用担心网址,只记得国家名称,当我们想使用$state.go('myState')

我开始使用Angular,但在其原生路由器中有path,它与routerLink指令一起用于转到路由并同时将其用作url。

本机路由器是否有解决方案?或者,与Angular的UI-router一起使用会更好?

回答

1

的角(2+)的路由器没有命名的状态 - 你会做UI的路由器称$state.go(<some state name>)同样的事情,你会使用router.navigate(<some path>)与角路由器做。我个人的建议是试试Angular Router,看看你是否真的错过了那些已命名的状态。由于默认路由器非常有限,UI路由器为AngularJS提供了真正的需求。新的路由器从UI路由器(和其他路由器)学到了很多东西,并且功能更强大,所以我建议试试看它是否满足您的需求。

但是,您也可以在Angular中使用UI路由器,如果您必须拥有您的状态。

+0

感谢您的回应,我不知道这是否只是我的习惯,但我认为当您可以分割导航以及您考虑显示在浏览器地址栏中的状态和网址时,这会非常棒。 其次它在代码库支持方面很好,当我有状态并在html中使用它时,组件按名称导航,我不认为url是如何看起来的,我可以在没有任何痛苦的情况下更改url,以防万一我使用导航逻辑的URL我必须更新每个用法... – BotanMan

+0

不要误解我的意思 - 我明白从url离开状态的好处,但尽管这是UI路由器的一大特性,但我认为UI路由器接管了AngularJS更多的是因为内置ngRoute的缺点,而不是因为这个特性。我知道新路由器的早期实现已经命名路由,但是在重写过程中它们将其彻底删除 - 我想对于大多数使用情况来说,这些名称对于网址来说是多余的。 – snorkpete

+0

Angular Router非常擅长使用单独的部件编写路由和/或具有相对于当前组件的路由,因此您的网址可以轻松适应组件结构中的更改。这不像你必须在你的'router.navigate()'方法中总是构建完整的url,所以比你想象的灵活性多得多 – snorkpete

相关问题