0

我想共享兩個控制器之間從lastFM API獲得的數據。Angularjs - 在兩個控制器之間傳遞API數據

我一直在試圖與工廠,但我沒有得到它一握...

angular.module('myApp') 
    .factory('getData', function($http, $scope, $routeParams) { 
    $http.get(lastfm + "&method=artist.getInfo&mbid=" + $routeParams.mbid).success(function(data) { 
     console.log(data) 
    }); 
    }) 
    .controller('artistCtrl', function ($scope, $routeParams, $http, getData) { 
    console.log(getData.data); 
    }) 
    .controller('artistInfoCtrl', function ($scope, $routeParams, $http, getData) { 
    console.log(getData.data); 
    }) 

讓我怎麼設法拉這一關?

回答

0

你的工廠有沒有財產的數據,你可能需要說

var something = getData(); 

打電話給你的工廠,使$ HTTP調用返回的成功處理程序的數據

$http.get(lastfm + "&method=artist.getInfo&mbid=" + $routeParams.mbid).success(function(data) { 
     return data; 
    }); 
1

有一個幾件事情:

1)知道你正在處理異步數據,所以不要指望能夠立即讀取控制器中的數據。

2)讓您的工廠返回控制器可以調用的功能。這個函數應該返回一個最終(如果一切順利)用數據解決的承諾; 3)控制器可以調用由工廠返回的函數以及在返回的承諾的.then()中,實際上可以使用這些數據。

我的建議是對上述術語做一點研究,如果他們還不熟悉你。瞭解它們將使您能夠通過角度實現更多。

相關問題