如何将对象一个控制器发送到角度的另一个控制器?

时间:2014-10-28 07:36:02

标签: javascript jquery angularjs

你能告诉我如何将对象一个控制器以角度方式发送到另一个控制器吗?我可以通过发送参数。是否有其他方式在另一个控制器中发送对象?

我喜欢这个 在按钮上单击我喜欢这个.data是object.user id是string。

 $location.path('/navigation/'+JSON.stringify(data)+"/"+$scope.userId);
配置

when('/navigation/:userDetail/:voterID',{
            templateUrl: 'partial/userdetail.html',
            controller: 'userdetail'
        })

我这样检索

console.log(JSON.parse($routeParams.userDetail)); 

有没有其他方法在另一个视图中发送对象而不使用本地存储

$scope.checkPerson=function(){
    $scope.loading=true;
    $http.post('http://192.168.11.218:8082/onlinevote/rss/checkUserDetail',  {
        "voterID":$scope.userId,
        "name":$scope.userName,
        "fatherName":$scope.fatherName,
        "territory":$scope.territory,
        "dOB":$scope.dOB
    }).
        success(function(data, status, headers, config) {
            // this callback will be called asynchronously
            // when the response is available
            console.log(data);
            console.log(status);
            console.log(headers);
            console.log(config);
            $scope.loading=false;
            $scope.loading=false;
            if(data.msg!="Already Vote with this id!")
            $location.path('/navigation/'+JSON.stringify(data)+"/"+$scope.userId)
            alert(data.msg)
        }).
        error(function(data, status, headers, config) {
            // called asynchronously if an error occurs
            // or server returns response with an error status.
            alert('error')
            $scope.loading=false;
        });
}

如何与服务分享? 有什么想法吗?

2 个答案:

答案 0 :(得分:0)

是的。

角度服务是单身人士。因此,它们是recommended way to share information between app components

范围$emit, $broadcast and $on methods提供了一个可以在父范围和子范围之间传递数据的事件系统。这是一项比服务更高级的功能。

答案 1 :(得分:0)

使用服务很容易实现:运行示例Plunker

<强> HTML

<div ng-app="myApp">
<div ng-controller="Ctr1">
  <input type="text" ng-model="Data.FirstName">
  <input type="text" ng-model="Data.LastName">
  <br>First Name in Ctr1 : <strong>{{Data.FirstName}}</strong>
  <br>Last Name in Ctr1: <strong>{{Data.LastName}}</strong>
</div>
<hr>
<div ng-controller="Ctr2">
  <br>First Name shared in Ctr2 : <strong>{{Data.FirstName}}</strong>
  <br>Last Name shared in Ctr2: <strong>{{Data.LastName}}</strong>
</div>

<强>的JavaScript

var myApp = angular.module('myApp', []);

myApp.factory('Data', function(){
    return { };
});

myApp.controller('Ctr1', function( $scope, Data ){
    $scope.Data = Data;
});

myApp.controller('Ctr2', function( $scope, Data ){
    $scope.Data = Data;
});