我想發送一個數組,填充從控制器1到控制器2的對象。但是我在控制器2中得到的是一個空數組。我得到一個填充的唯一方法是當我在我的服務中創建一個靜態數組。在控制器之間共享數據AngularJS
我的服務
app.service('myData', function() {
this.myData = [];
this.addData = function(data) {
this.myData.push(data);
}
this.getData = function() {
return this.myData;
}});
控制器1的設置數據
app.controller('controller1',['$scope', 'myData', function($scope, myData) {
$scope.addData = function(index, name) {
myData.addData({index: index, name: name});
}}]);
控制器2看起來像這樣
app.controller('controller2',['$scope', 'myData', function($scope, myData) {
$scope.myData = myData.getData();
$scope.$watch('myData.getData()', function(data){
console.log(data);
});
console.log($scope.myData);}]);
當我在尋找一個答案,我發現的問題很多幾乎和我的相似。唯一的區別是我從我的控制器中填充我的服務,而不是創建靜態服務。
我的console.logs都返回一個空數組。爲什麼是這樣?
你需要使用根範圍內或一個像我的廣播或事件 – Rafa
你的手錶似乎有點陌生的溝通機制。試試這個'function(){return myData.getData()}'而不是'data.getData()' –