Javascript 在angular js中,在URL中捕获组件状态的推荐方法是什么

Javascript 在angular js中,在URL中捕获组件状态的推荐方法是什么,javascript,angularjs,angular,url-routing,angular-routing,Javascript,Angularjs,Angular,Url Routing,Angular Routing,我有一个可重用的小部件,它有自己的状态。在我的例子中,状态包括搜索栏(2)的内容、一个或多个选择框(1),以及用户可以在其中选择当前活动元素(3)的树 我想要实现locationManager,它将做两件事: 设置$location并根据小部件的状态更改URL 读取输入的URL并将小部件设置为正确状态 我想知道对于这个问题,是否有某种特定于角度应用的设计模式。我的想法是使用事件来传递状态:每次小部件的状态发生变化时,它都会发出事件,该事件将被位置管理器捕获,URL将相应地设置。有更好的办法吗

我有一个可重用的小部件,它有自己的状态。在我的例子中,状态包括搜索栏(2)的内容、一个或多个选择框(1),以及用户可以在其中选择当前活动元素(3)

我想要实现locationManager,它将做两件事:

  • 设置
    $location
    并根据小部件的状态更改URL
  • 读取输入的URL并将小部件设置为正确状态
我想知道对于这个问题,是否有某种特定于角度应用的设计模式。我的想法是使用事件来传递状态:每次小部件的状态发生变化时,它都会发出事件,该事件将被位置管理器捕获,URL将相应地设置。有更好的办法吗

UPD:问题主要是关于AngularJS 1,但AngularJS 2的解决方案也值得赞赏


您需要使用服务ActivatedRoute中的查询参数。


AngularJS 1.x或Angular2?对它们中的任何一个都有很好的建议它们是完全不同的框架。您应该选择一个。
window.location.href
应该对这两个版本都适用(我不知道AngularJS 1.x)。两个AngularJS版本中都有一个路由器可以为您实现这一点。太好了,这将是通过路由器的单向数据流,所有组件都将侦听url参数中的更改。很酷,看起来很干净。谢谢你的回答。如果这些链接无效,请在您的帖子中包含链接中的重要信息。