如何在Angularjs的UI-Router中传递$ rootscope,这是一个包含10s参数的对象?

时间:2016-07-18 01:11:44

标签: angularjs angular-ui-router ui-sref

您好我是新开发人员,我有这个问题,使用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。

2 个答案:

答案 0 :(得分: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)"

答案 1 :(得分: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)
})