2014-08-31 64 views
0

我使用谷歌的飼料API與AngularJS和我需要得到我的飼料數據混合格式(json & xml)。我使用下面的代碼通過ngResurce調用Google的Api,我一直在嘗試將方法和回調標記更改爲MIXED_FORMAT,但我無法使其工作。這裏谷歌解釋瞭如何使用它,但我不知道如何將其應用到AngularJS https://developers.google.com/feed/v1/devguide#resultMixed如何使用谷歌飼料API使用AngularJS獲得混合格式

.factory('FeedLoader', function ($resource) { 
    return $resource('http://ajax.googleapis.com/ajax/services/feed/load', {}, { 
     fetch: { method: 'JSONP', params: {v: '1.0', callback: 'JSON_CALLBACK'} } 
    }); 
}) 

回答

2

你可以簡單地把它添加到您的查詢的PARAMS想法。我修改了您的示例以將輸出格式設置爲混合模式。

.factory('FeedLoader', function ($resource) { 
    return $resource('http://ajax.googleapis.com/ajax/services/feed/load', {}, { 
     fetch: { method: 'JSONP', params: {v: '1.0', callback: 'JSON_CALLBACK', output: 'json_xml'} } 
    }); 
}) 
+0

非常感謝你,現在我明白它是如何工作的 – mhkore 2014-09-09 21:45:46

0

我需要解析機箱標籤以獲取url圖像。假設我應該使用json + xml代碼來獲得MIXED OUTPUT,但是當我嘗試解析它時,我從enclousure標記中得到了一個未定義的值。我這樣做就像我在這篇文章Google Feed Loader API ignoring XML attributes。看到的。此外,我試圖獲得混合格式手動編寫的網址,但它不起作用。有我的整個代碼。我怎麼知道我得到混合的json輸出?

var feeds = []; 
var entryImageUrl = []; 

angular.module('starter.controllers', ['ngResource','ngLocale']) 

.factory('FeedLoader', function ($resource) { 
     return $resource('http://ajax.googleapis.com/ajax/services/feed/load', {}, { 
      fetch: { method: 'JSONP', params: {v: '1.0', callback: 'JSON_CALLBACK', output: 'json_xml'} } 
     }); 
}) 

.service('FeedList', function ($rootScope, FeedLoader) { 
    this.get = function() { 
     var feedSources = [ 
      {title: 'Heraldo De Barbate', url: 'http://www.heraldodebarbate.es/rss/last'}, 
     ]; 
     if (feeds.length === 0) { 
      for (var i=0; i<feedSources.length; i++) { 
       FeedLoader.fetch({q: feedSources[i].url, num: 10}, {}, function (data) { 
        var feed = data.responseData.feed; 
        **var entryImageUrl = feed.xmlNode.getElementsByTagName("enclosure")[i].getAttribute("url");** 
        feeds.push(feed); 
       }); 
      } 
     } 
     return feeds; 
    }; 
}) 

.controller('FeedCtrl', function ($scope, FeedList,$timeout) { 

    $scope.update = function(){ 
    $scope.feeds = FeedList.get(); 
    $scope.$on('FeedList', function (event, data) { 
     $scope.feeds = data; 
     // $scope.entryImageUrl 
     console.log(feeds); 
    }); 
    $timeout(function() { 
     $scope.$broadcast('scroll.refreshComplete'); 
    }, 500);  
    } 
})