2017-06-06 54 views
-3
var app = angular.module("myApp",[]); 

app.controller("CTRL1", function($scope){ 
    $scope.data = [{'name':'Prateek'},{'name':'Agarwal'},{'name': 'Ketan'}]; 
}) 

app.controller("CTRL2", function($scope){ 
    $scope.data = [{'name':'Hari'}]; 
}) 

我有兩個控制器 - CTRL1和CTRL2。我如何從另一個控制器訪問數據?如何在Angular js的另一個控制器中訪問控制器的數據?

+1

應該使用一個服務爲該樣的目的,因此你可以導入,並在您的應用程序:) – DevMoutarde

+0

https://stackoverflow.com/questions/43902680/how-to-transfer-在任何地方使用它控制器之間的數據/ 43906406#43906406 –

+0

不要在您的控制器中使用$ emit和$ on。你應該使用這個服務或找到其他方式。如果你打算廣播你應該使用子酒館體系結構。如果這兩個控制器需要彼此交談,也許他們是一個控制器。如果他們只能一起存在,爲什麼有2?我在這裏假設很多.. – Maccurt

回答

0

您可以使用$ emit和$ on函數實現此功能,這些函數將在任何名爲的spectfic事件的控件中發送數據。

<div ng-app="myApp" ng-controller="myCtrl"> 

    <button ng-click="sendData();"></button> 

</div> 


<script> 
var app = angular.module('myApp', []); 
app.controller('myCtrl', function($scope, $http) { 
    function sendData($scope) { 
     var arrayData = [1,2,3]; 
     $scope.$emit('someEvent', arrayData); 
    } 

}); 
app.controller('yourCtrl', function($scope, $http) { 
    $scope.$on('someEvent', function(event, data) { 
     console.log(data); 
    }); 
}); 
</script> 
相關問題