将重复对象从一个控制器传递给另一个控制器

时间:2016-06-09 07:04:26

标签: angularjs

您好我正在使用ng repeat显示数据 我在模板中显示3个人..现在当我点击其中一个时。我想详细显示那个人的信息...所以我需要制作新的控制器和新模板...但我知道一种方法是将一个独特的参数,如移动否传递给控制器​​..然后将移动号码更改为另一个控制器和template.using location.path().search() ..现在在第二个控制器中我可以使用第二个参数再次请求信息..这没关系吗?

我想将整个人数据从1个控制器传递给其他人,但我不知道该怎么办...

2 个答案:

答案 0 :(得分:2)

使用服务设置所选人员的信息,并使用routeParam为用户的唯一身份识别信息访问该信息。

代码结构如下所示



angular
  .module('app')
  .controller('ParentController', function (UserService) {
    
    $scope.onSelect = function (user) {
      UserService.setCurrentUser(user);
    }
  })
  .controller('ChildController', function ($routeParams, UserService) {
    
    $scope.user = UserService.getCurrentUser($routeParams.userId);
  })
  .factory('UserService', function () {
    var currentuser = {};
  
    return {
      getCurrentUser: getCurrentUser,
      setCurrentUser: setCurrentUser
    };
  
    function getCurrentUser () {
      return currentuser;
    }
  
    function setCurrentUser (user) {
      currentuser = user;
    }
  })




答案 1 :(得分:0)

您可以将第二个控制器作为第一个控制器的子控件。

然后可以在第二个控制器中访问第一个控制器的所有数据。

它还取决于用例,您可以使用以下方法在控制器之间共享数据(如果您不想执行上述操作)

1)$ localStorage 2)$ sessionStorage 3)创建服务