6

का उपयोग करते समय कोणीय 1.6 के $ http.jsonp Google शीट 'एपीआई के साथ अच्छा नहीं चलता है:

मैं लाने के लिए और फिर मेरी डेटा प्राप्त कोशिश कर रहा हूँ गूगल चादरें, निम्नलिखित के साथ से:

var callback; 
app.controller("meetingsTable", function ($scope, $http, $sce) { 

var url = "http://spreadsheets.google.com/a/google.com/tq"; 
var trustedUrl = $sce.trustAsResourceUrl(url); 
var key = 'MY_KEY'; 
var tq = 'select%20*%20limit%2010'; 
var tqx = 'responseHandler:callback'; 
var params = { 
    key: key, 
    tq: tq, 
    status: 'ok', 
    tqx: tqx 
}; 

callback = function (response) { 
    console.log(response); // entering here, not to the promise 
    return response; 
} 


    $http.jsonp(trustedUrl, { params: params }).then(function (response) { 
     console.log(response); 
     retrun; 
     //success things go here 
    }, function (response) { 
     //error things go here 
    }); 
}); 

मैं सफलतापूर्वक, एक समारोह (कॉलबैक) का उपयोग कर एक vnila js साथ, द्वारा जब मैं कोणीय के साथ की कोशिश की द्वारा शीट से डेटा प्राप्त करने manged, मुझे मिल गया एक " google.visualization.Query.setResponse "स्रोतों में ऑब्जेक्ट, कंसोल त्रुटि के साथ: Uncaught ReferenceError: google परिभाषित नहीं है।

सबसे कष्टप्रद बात - वादा प्रतिक्रिया को पुन: प्राप्त नहीं करता है, और मैं अपनी तालिका के मान ansyc को अपडेट नहीं कर सकता। मैं सब कुछ करने की कोशिश की मैं (और stackoverflow में हर सुझाव) के बारे में सोच सकता है, बातें मैंने कोशिश की:

  1. यूआरएल गुजर के रूप में यह है, पैरामीटर के बिना, myabe cuase $ sce.trustAsResourceUrl पूरे यूआरएल की जरूरत है।
  2. $ sce के बिना गुजर रहा है (वेनिला जेएस में काम करता है, यहां नहीं)।
  3. मेरे वादे सफलता समारोह को "कॉलबैक" के रूप में नामित करना।
  4. जांच रहा है कि चादरें एपीआई में सभी मान यहां हैं (फिर से, वेनिला के साथ काम करता है)।
  5. वादे के अंदर "कॉलबैक" को कॉल करना, इसे वादे के अंदर एक समारोह के रूप में दर्ज करना।
  6. कॉलबैक फ़ंक्शन के बिना & के साथ प्रतिक्रिया वापस करने वाले फ़ंक्शन के अंदर सभी जेसनपी प्राप्त करना।
  7. "tqx = responseHandler: callback" पैरामीटर से कॉलबैक को हटाकर सभी togther।
  8. tqx param में कॉलबैक के रूप में वादा पास कर रहा है।
  9. 1.5 < "JSON_CALLBACK" का उपयोग करके, जो 1.6 के साथ काम नहीं करता है।
  10. वेनिला जेएस के साथ अनुरोध कर रहा है, और उसके बाद इसे नियंत्रक (कार्य नहीं किया गया) में पास कर रहा है।

यदि मुझे और चीजों में याद होगा, तो मैं नीचे अपडेट करूँगा।

कृपया, क्या कोई यह समझ सकता है कि समस्या क्या है? वास्तव में सराहना करते हैं, धन्यवाद, योव।

उत्तर

1

मेरे अपने प्रश्न का उत्तर देना:

तुम लोग एक ही समस्या है, के कोणीय $scope.$apply संपत्ति का उपयोग करें। यह एंगुलर के एपीआई में एक अच्छी तरह से प्रलेखित संपत्ति नहीं है, इसलिए यहां एक अच्छा उदाहरण के साथ $ 0 का उपयोग करने के तरीके के लिए एक अच्छा guide है। मेरे कार्यान्वयन:

$scope.tableContentData; 
callback = function (response) { 
    $scope.$apply(function() { 
     $scope.tableContentData = response; 
    }); 
}; 
$http.jsonp(trustedUrl).then(function() { 
     //success stuff 
    }, function() { 
     //error stuff 
    }); 

जब मैं कॉलबैक मेरी नियंत्रक के बाहर की घोषणा की।

यह एक दुःस्वप्न था।

वैसे भी वोट-अप के लिए धन्यवाद!

संबंधित मुद्दे