如何在angularjs中从一个控制器向另一个控制器发送数据

如何在angularjs中从一个控制器向另一个控制器发送数据,angularjs,Angularjs,如何使用angularjs将json数据从FirstCtrl发送到secondCtrl 有人能帮我解决这个问题吗 First.js: angular.module('myApp') .controller('FirstCtrl', function ($scope) { //firstCtrl json data $.getJSON("sample.json", function (json) { console.log(json);

如何使用angularjs将json数据从FirstCtrl发送到secondCtrl

有人能帮我解决这个问题吗

First.js:

angular.module('myApp')
    .controller('FirstCtrl', function ($scope) {

    //firstCtrl json data
       $.getJSON("sample.json", function (json) {
            console.log(json);
         });
    });
Second.js:

angular.module('myApp')
    .controller('secondCtrl', function ($scope) {

       //get the firstCtrl json data here
    });

如果第二个控制器是嵌套的,则可以使用$parent访问第一个控制器的作用域。您需要将json的值分配给$scope,例如

$scope.json = my_json
然后在第二个控制器中,您可以说

$scope.json = $scope.$parent.json;

如果第二个控制器是嵌套的,则可以使用$parent访问第一个控制器的作用域。您需要将json的值分配给$scope,例如

$scope.json = my_json
然后在第二个控制器中,您可以说

$scope.json = $scope.$parent.json;
var-app=angular.module('myApp',[]);
应用程序控制器('Ctrl1',函数($scope,$rootScope){
$scope.msg='World';
$rootScope.name='AngularJS';
});
应用程序控制器('Ctrl2',函数($scope,$rootScope){
$scope.msg='Dot Net Tricks';
$scope.myName=$rootScope.name;
});

你好{{msg}}!

你好{{name}}! (根镜)
你好{{msg}}!
嘿{{myName}}!
你好{{name}}!(根镜)
var-app=angular.module('myApp',[]);
应用程序控制器('Ctrl1',函数($scope,$rootScope){
$scope.msg='World';
$rootScope.name='AngularJS';
});
应用程序控制器('Ctrl2',函数($scope,$rootScope){
$scope.msg='Dot Net Tricks';
$scope.myName=$rootScope.name;
});

你好{{msg}}!

你好{{name}}! (根镜)
你好{{msg}}!
嘿{{myName}}!
你好{{name}}!(根镜)
Yo只需创建一个新的服务,该服务有两个功能,一个用于保存日期,另一个用于提供日期,然后可以从任何地方访问该服务。
此外,您可以将数据分配给一个
$rootScope.someVar
,例如,通过这种方式,您也可以从任何地方检索数据您只需创建一个新的服务,该服务有两个功能,一个用于保存日期,另一个用于提供数据,然后可以从任何地方访问该服务。
此外,您可以将数据分配给
$rootScope.someVar
,例如,通过这种方式,您也可以从任何位置检索数据我还建议使用一种服务,从控制器获取数据并将数据返回给控制器

我们创建两个控制器,然后创建一个具有两个功能的服务: 1.一个是获取json数据 2.一个是返回json数据

像这样:

'use strict';
angular.module('myApp', [])

.controller('FirstCtrl', function( $scope, myService ){
 //we create or get the json object
 $scope.myjsonObj = {
      'animal':'cat',
      'feed':'frieskies',
      'color':'white',
      'sex':'male'
      };

      //pass the json object to the service
      myService.setJson($scope.myjsonObj);
})

.controller('SecondCtrl', function( $scope, myService ){
        //call service getJson() function to get the data
       $scope.myreturnedData = myService.getJson();
})
 .factory('myService', function(){
    var myjsonObj = null;//the object to hold our data
     return {
     getJson:function(){
       return myjsonObj;
     },
     setJson:function(value){
      myjsonObj = value;
     }
     }

});
HTML部分将是:

 <div ng-app="myApp">
        <div ng-controller="FirstCtrl">
          {{myjsonObj}}
        </div>
        <hr>
        <div ng-controller="SecondCtrl">
            {{myreturnedData.animal}}
            {{myreturnedData.feed}}
            {{myreturnedData.color}}
            {{myreturnedData.sex}}
        </div>

{{myjsonObj}}

{{myreturnedData.animal} {{myreturnedData.feed} {{myreturnedData.color} {{myreturnedData.sex}

希望对您有所帮助,祝您好运。

我还建议您提供一种从控制器获取数据并将数据返回控制器的服务

我们创建两个控制器,然后创建一个具有两个功能的服务: 1.一个是获取json数据 2.一个是返回json数据

像这样:

'use strict';
angular.module('myApp', [])

.controller('FirstCtrl', function( $scope, myService ){
 //we create or get the json object
 $scope.myjsonObj = {
      'animal':'cat',
      'feed':'frieskies',
      'color':'white',
      'sex':'male'
      };

      //pass the json object to the service
      myService.setJson($scope.myjsonObj);
})

.controller('SecondCtrl', function( $scope, myService ){
        //call service getJson() function to get the data
       $scope.myreturnedData = myService.getJson();
})
 .factory('myService', function(){
    var myjsonObj = null;//the object to hold our data
     return {
     getJson:function(){
       return myjsonObj;
     },
     setJson:function(value){
      myjsonObj = value;
     }
     }

});
HTML部分将是:

 <div ng-app="myApp">
        <div ng-controller="FirstCtrl">
          {{myjsonObj}}
        </div>
        <hr>
        <div ng-controller="SecondCtrl">
            {{myreturnedData.animal}}
            {{myreturnedData.feed}}
            {{myreturnedData.color}}
            {{myreturnedData.sex}}
        </div>

{{myjsonObj}}

{{myreturnedData.animal} {{myreturnedData.feed} {{myreturnedData.color} {{myreturnedData.sex}

希望有帮助,祝你好运。

只要使用
$rootScope
就可以实现这一点。
在第一个控制器中,分配
$rootScope.json=$scope.json,它将在整个应用程序上可用。因此,您可以在特定应用程序的任何位置访问
$rootScope.json
只要使用
$rootScope
即可。
在第一个控制器中,分配
$rootScope.json=$scope.json,它将在整个应用程序上可用。因此,您可以在特定应用程序的任何位置访问
$rootScope.json

复制对复制,非常感谢您的帮助。工厂使用了什么?你能解释一下吗?你可以使用服务/工厂(几乎相同的功能)在你的web应用程序中共享价值。请阅读此文档了解更多信息:您好,请针对您的新问题提出一个新问题,并用一个示例从一开始就对其进行检查。非常感谢您的帮助。工厂使用了什么?你能解释一下吗?你可以使用服务/工厂(几乎相同的功能)在你的web应用程序中共享价值。如需了解更多信息,请阅读此文档:您好,请针对您的新问题提出一个新问题,并提供一个示例,以便从一开始就对其进行检查。我不建议仅在恰当的情况下使用
$rootScope
。我不建议仅在恰当的情况下使用
$rootScope