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