如何将包含10s参数的对象$rootscope传递给UI-Router of Angularjs中的state?
how to pass $rootscope which is an object includeing 10s of parameter to state in UI-Router of Angularjs?
你好,我是一名新开发人员,我在使用 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.
我会像这样在您的控制器中创建一个用于 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)"
如果确实不需要使用 href,请在控制器中编写一个函数,并在单击按钮或 link 时调用它。
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)
})
你好,我是一名新开发人员,我在使用 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.
我会像这样在您的控制器中创建一个用于 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)"
如果确实不需要使用 href,请在控制器中编写一个函数,并在单击按钮或 link 时调用它。
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)
})