如何在angularjs中的状态`url`中添加参数

时间:2016-10-14 13:32:59

标签: angularjs

我正在尝试将一个参数添加到我的角度应用程序中。实际上我的应用程序将动态调用为:

"https://abc.ss.com/xx/sn=1234568505

处理此state - 在我的$stateProvider中 - 我正在尝试这样:

 .state('serialCreateCase', {
        url: '/sn=*', //but not working
        templateUrl:'abxy.html',
        controller: 'controllersss as ctrl',
        }
      })

但是我的网址没有捕获重定向到默认页面。如何添加=参数?

3 个答案:

答案 0 :(得分:2)

试试这个:

{{1}}

这应该与您期望的网址相匹配。

编辑:已更新答案,将其更改为所需参数。

答案 1 :(得分:0)

您是否尝试过此操作:http://benfoster.io/blog/ui-router-optional-parameters

查询参数

为了将查询参数映射到UI路由器的$ stateParams对象,您需要在状态配置的URL模板中声明它们:

state('new-qs', {
  url: '/new?portfolioId',
  templateUrl: 'new.html',
  controller: function($scope, $stateParams) {
     $scope.portfolioId = $stateParams.portfolioId;
  }
})

然后,您可以使用ui-sref属性创建指向此状态的链接:

<a ui-sref="new-qs({ portfolioId: 1 })">New (query string)</a>

这将导航到/ new?portfolioId = 1。

如果您有多个可选参数,请使用&amp;:

分隔它们
state('new-qs', {
  url: '/new?portfolioId&param1&param2',
  templateUrl: 'new.html',
  controller: function($scope, $stateParams) {
     $scope.portfolioId = $stateParams.portfolioId;
     $scope.param1 = $stateParams.param1;
     $scope.param2 = $stateParams.param2;
  }
})

答案 2 :(得分:-2)

您可以添加这样的参数

state('serialCreateCase', {
 url: '/xx?sn',
 templateUrl: 'abxy.html',
 controller: 'controllersss as ctrl',
 }
})

州参考将是

<a ui-sref="serialCreateCase({ sn: 1234568505 })">URL</a>