2

您好,我是一名新开发人员,我遇到了使用 UI-Router 将根范围参数传递给我的状态的问题。

这是我的 href ,我想将其更改为 ui-sref :

href="/mycarts/{{cats.id}}?{{$root.filterParams}}

这是我的状态:

.state('mycarts', {
    url : '/mycarts/:id?vendors&' +
          'price_to&price_from&manufacturer&' +
          'editor&theme&page&order&filter_by&no',
    templateUrl : 'partials/mycarts.html',
    controller : 'MyCartsController'

这就是我将参数传递给控制器​​的方式:

    $scope.id = $stateParams.id;

所以基本上 id 参数的所有内容都可以正常工作,但是我还需要传递其他字符串查询,这很多,我不知道如何将其他字符串查询传递给它 将上面的 href 更改为 ui-sref 的正确方法是什么.

4

2 回答 2

2

我会ui-sref像这样创建一个对象以在您的控制器中使用

$scope.linkParams = angular.extend({id: $scope.cats.id}, $scope.$root.filterParams);

(见https://docs.angularjs.org/api/ng/function/angular.extend

然后用在ui-sref

ui-sref="mycart(linkParams)"
于 2016-07-18T01:41:35.547 回答
0

如果真的不需要使用href,请在控制器中编写一个函数并将其调用为单击按钮或链接。

HTML

<a style="text-decoration: underline" href="" ng-click="gotToMycarts()">Go</a>

Javascript

.controller('TestController',function($state){
   $state.transitionTo('mycarts',{id :12,vendors:'Test',price_to:200});
}).controller('MyCartsController',function($state, $stateParams){
  console.log($stateParams.id);
  console.log($stateParams.price_to)
})
于 2016-07-19T10:21:14.840 回答