2016-05-16 6 views
0

コントローラから別のコントローラにデータを使用したいのですが、誰か助けてください。たとえば、他のコントローラのデータにアクセスする

.controller('firstCtrl',function($scope){ 
    $scope.item = [{id:1, name:'John'},{id:2, name:'carter'},{id:3, name:'barsoom'},..] 
    }) 
    .controller('secondCtrl',function($scope){ 
    $scope.jsondata = item; 
    console.log(JSON.stringify($scope.jsondata)); 
    }) 

可能ですか。誰でも私を助けてください。ありがとうございました。

+0

[正しい方法で角度アプリ内のコントローラ間でデータを共有する方法]の可能な重複(http://stackoverflow.com/質問/ 34442752 /どのように共有データ - コントローラ間の角度アプリで正しい方法) – Andrew

+0

こんにちは..ありがとうございます。私は別の[質問](http://stackoverflow.com/questions/37257798/accessing-data-from-one-controller-to-another)を投稿しました。ビットは詳細を – naik3

+0

で説明しました。 – naik3

答えて

1

この

<body ng-app="myApp"> 

    <div ng-controller="ctrl"> 
     {{name}} 

    </div> 

    <div ng-controller="c"> 
     {{name}} 

    </div> 


</body> 
をお試しください

VARアプリは= angular.module( 'て、myApp'、[])。コントローラ( 'CTRL'、[ '$範囲'、 '$ rootScope'、関数($の範囲、$ rootScope){

$rootScope.name = "vipin"; 


}]).controller('c', ['$scope', '$rootScope', function ($scope) { 


}]) 

を実行し、このコードを使用すると、あなたは、コントローラに注入するサービスまたはをブロードキャストイベントを使用することができ、コントローラ

+0

こんにちは..返事ありがとうございます。私は試して、それは動作していません。 – naik3

+0

こんにちは..ありがとうございます。私は別の[質問](http://stackoverflow.com/questions/37257798/accessing-data-from-one-controller-to-another)を投稿しました。ビットが詳細に説明されました – naik3

+0

私のコードを編集します。 –

1

コントローラ間でデータを共有する場合は、角度サービスを使用する必要があります。それらは、アプリケーションで共通のコードを共有するために使用されるシングルトンです。ですから、$ httpリクエストや、多くの場所で使われているデータなどを置くのは良い習慣です。

いくつかの例は次のようになります。

https://jsfiddle.net/relferreira/2b5amcya/

JS:

angular.module('app', []); 

angular.module('app') 
    .controller('MainController', mainController); 

mainController.$inject = ['UserService']; 

function mainController(UserService){ 

    var vm = this; 
    vm.name = UserService.getName(); 

} 

angular.module('app') 
    .controller('DetailController', detailController); 

detailController.$inject = ['UserService']; 

function detailController(UserService){ 

    var vm = this; 
    vm.name = UserService.getName(); 
    vm.other = 'test'; 

} 

angular.module('app') 
    .factory('UserService', userService); 

function userService(){ 
    var name = 'Renan'; 
    return{ 
    getName: getName 
    } 

    function getName(){ 
    return name; 
    } 
} 

HTML:

<div data-ng-app="app"> 

    <div data-ng-controller="MainController as mainVm"> 
    {{mainVm.name}} 
    </div> 

    <div data-ng-controller="DetailController as detailVm"> 
    {{detailVm.name}} 
    {{detailVm.other}} 
    </div> 

</div> 
+0

こんにちは..返事ありがとうございます。私は別の[質問](http://stackoverflow.com/questions/37257798/accessing-data-from-one-controller-to-another)を投稿しました。ビットは詳細に説明されています – naik3

0

両方で$ rootScope.name値を得ることができます。

方法1:

myApp.controller('FirstCtrl', function ($scope) { 
    $scope.$broadcast('Test_Data',{ data: {} }); 
    }) 
myApp.controller('SecondCtrl', function ($scope) { 
    $scope.$on('Test_Data', function(event, args) { 
     var data= args.data 
     // do something useful here; 
    }); 
    }); 

方法2:

 myApp.factory('TestData', function() { 
     var data = {}; 
      var setData=function(){...} 
     return data; 
     }); 
    myApp.controller('FirstCtrl', function ($scope, TestData) { 
     $scope.data = TestData; 
     }) 
+0

こんにちは..ありがとう、返信してください。私は最初のメソッドを試していました** $ scope($ Test_Data、{data:{}}); **この行では、 "{data; {}}"を説明してください。自分のコードでどのように使うことができますか? – naik3

+0

私はそれを試しました:** $ scope。$ broadcast( 'Test_Data'、$ scope.item); **それは正しいですか??? – naik3

+0

こんにちは..ありがとうございます。私は別の[質問](http://stackoverflow.com/questions/37257798/accessing-data-from-one-controller-to-another)を投稿しました。ビットは詳細に説明されています – naik3

関連する問題