如何在角度ui-router中生成url并将其放置到位置

时间:2016-03-22 09:50:20

标签: angularjs angular-ui-router

View具有选择城市和选择参数的控件。此视图显示所选城市的选定对象。加载视图时,我解析URL并向服务器请求。视图的网址为:http://example.com/cities?cityId=3&cityId=33&param1=value1。我的问题:

  1. 我该怎么把这个网址放在哪里?
  2. 如何在位置处理更改后的网址?
  3. 我必须挂起处理程序?

2 个答案:

答案 0 :(得分:2)

您可以使用

生成网址
$location.url('cities?cityId=3&param1=value1');

并且您可以在路由器配置$stateProvider中处理此问题,您可以在其中定义状态

.state('cities', {
          url: "/cities?cityId&param1",
          templateUrl: "....",
          controller: "citiesController"
        })
// will match to url of "/cities?cityId=[any id]&param1=[any value]"

最后你可以在 citiesController.js 中加入这些参数,即

console.log($stateParams);
//Object {cityId: "3", param1: "value1"}

希望它有所帮助。

答案 1 :(得分:1)

由$ state.go自动生成的网址('城市',{/ * params * /},{location:true})。

在控制器中我把处理程序放在$ scope。$ on(' $ stateChangeSuccess' ..