使用angularjs我做了兩個ajax json請求,第一個請求是檢索頻道的在線/離線狀態,第二個ajax json請求是針對頻道的信息(標識,名稱,狀態等)。我應該創建一個.factory以將變量的值共享給兩個ajax請求嗎?
我將變量信號分配給'data.stream',它是在json請求之間共享信號的通道的在線/離線狀態。在Google Developer Console中,我收到的值爲null。我在這裏做了一些研究http://www.ng-newsletter.com/posts/beginner2expert-services.html,發現使用服務可能是一個解決方案。我遵循指示,但我仍然無法獲得json請求識別信號的範圍。
我讀過可以使用rootcope,但不推薦,不知道這是多麼真實,因爲一個新手使用角度,但我想通過應用最佳實踐開始我的角度旅程。
回顧:使用Angular Ajax創建一個jsonp請求來抽動api,我提出了兩個請求來檢索我的streamers數組中的通道的在線/離線狀態,另一個ajax json請求是獲取通道的信息,並且我需要在ajax jsonp請求之間看到已賦值data.stream的變量信號的作用域。請讓我知道這是否合乎邏輯,或者我是否「再次環遊世界」。
這裏是一個plunker:plnkr.co/edit/6sb39NktX7CwfnQFxNNX
// creating a service for signal ?
app.factory('signal', function() {
var signal = {};
return signal;
})
// declaring my TwitchController and dependencies
app.controller('TwitchController', ['$scope', '$http', 'signal', function($scope, $http, signal) {
// streamers array with array of channels
var streamers = ["freecodecamp", "storbeck", "terakilobyte", "habathcx", "RobotCaleb", "thomasballinger", "noobs2ninjas", "beohoff", "medrybw"];
$scope.imgs;
$scope.signal = signal;
var self = this;
//empty array
self.info = [];
for (var i = 0; i < streamers.length; i++) {
var url = "https://api.twitch.tv/kraken/channels/";
var streamUrl = "https://api.twitch.tv/kraken/streams/";
var callback = "/?callback=JSON_CALLBACK";
//json ajax request for channels online and offline status
$http.jsonp(streamUrl + streamers[i] + callback).success(function(data) {
//provides status of shows online and offline
signal = data.stream;
console.log(signal)
});
// json ajax request for channels and channel's info
$http.jsonp(url + streamers[i] + callback).success(function(data) {
// if channel does not have a logo image, this jpg will be the placeholder
// if statement test channel status (online or offline)
if (!signal) {
signal = "offline";
} else if (signal) {
signal = 'online';
}
// pushing retreive data from twitch.tv into array self.info
self.info.push(data);
});
medrybw 24/7全天候廣播,所以狀態應該在線。在chrome中,placeholderlogo.jpg表示所有頻道的標誌,當它不應該出現時,更重要的是頻道的信息不再填充我的表情。我究竟做錯了什麼? – user3574939
你應該在plunkr中發佈你的代碼,以便你可以追蹤你的問題。目前還不清楚你想要構建什麼對象。您可以根據需要更改$ scope.info.push()以包含來自channelData對象的儘可能多的數據。不確定在線狀態。我只知道它是從data.stream返回一個空狀態,並且它是你用來確定它是否離線/在線。代碼的作品,你只是沒有解釋你真正想要的結果對象。 – Enkode
嗨@enkode這裏是我的Plunker的網址http://plnkr.co/edit/6sb39NktX7CwfnQFxNNX – user3574939