如何在不使用rootScope或URL参数的情况下在AngularJS中的两个状态之间发送对象?

时间:2015-06-16 12:49:50

标签: angularjs

当我在一个状态到另一个状态之间导航时,我想传递一个要在新状态下使用的对象。如何在不使用$rootScope等全局对象解决方案的情况下执行此操作?另外我不想使用状态url参数。

基本上,我想做$state.go('myState', {some: 'thing'})并且在控制器内部为“myState”我希望能够以某种方式到达传递的对象。

3 个答案:

答案 0 :(得分:1)

我认为通过"两个州"你的意思是两个不同的控制器,每个控制器都可以通过不同的路径访问。

Angular建议使用服务,因为doc说:

  

Angular服务是连接在一起的可替代对象   使用依赖注入(DI)。您可以使用服务来组织和   在您的应用中共享代码。

答案 1 :(得分:0)

各州之间的意思是什么?如果您指的是控制器之间,那么您可以使用共享服务来保存数据。服务是单身,所以在页面的生命周期内都可以使用。

答案 2 :(得分:0)

您可以访问

中的状态参数
.controller('ctrl',['$scope','$stateParams',function($scope , $stateParams ) {    

          $scope.getParams = function() {
              console.log( $stateParams.some ); 
          }

    }

https://github.com/angular-ui/ui-router/wiki/URL-Routing#stateparams-service