Các kiễu góc 1.6 của $ http.jsonp không chơi đẹp với API tờ google:
Tôi đang cố gắng để lấy và sau đó nhận được dữ liệu của tôi từ tấm google, với những điều sau:
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
});
});
tôi successfuly manged để có được các dữ liệu từ các tờ, bằng cách sử dụng một chức năng (gọi lại), với một js vnila, bởi khi tôi thử với góc, tôi nhận được " đối tượng google.visualization.Query.setResponse "trong các nguồn, với lỗi của bảng điều khiển: Tham chiếu không bắt buộc Lỗi: google không được xác định.
Điều khó chịu nhất - lời hứa không lặp lại phản hồi và tôi không thể cập nhật giá trị của bảng ansyc. tôi đã cố gắng tất cả mọi thứ tôi có thể nghĩ đến (và tất cả các gợi ý trong stackoverflow), Những điều tôi đã cố gắng:
- đi qua các url như nó có, mà không params, cuase myabe các $ sce.trustAsResourceUrl cần toàn bộ url.
- không qua $ sce (hoạt động ở vanila js, không có ở đây).
- đặt tên hàm thành công lời hứa của tôi là "gọi lại".
- kiểm tra rằng tất cả các giá trị trong API của trang tính đều ở đây (một lần nữa, hoạt động với vanila).
- gọi "gọi lại" trong lời hứa, nhập nó làm chức năng bên trong lời hứa.
- nhận tất cả jsonp bên trong hàm trả về phản hồi, với & không có chức năng gọi lại.
- xóa cuộc gọi lại khỏi tham số "tqx = responseHandler: gọi lại" tất cả togther.
- chuyển lời hứa dưới dạng gọi lại trong tham số tqx.
- sử dụng 1,5 < "JSON_CALLBACK", không hoạt động với 1.6.
- thực hiện yêu cầu với vanila js và sau đó chuyển nó tới bộ điều khiển (công việc không thực hiện).
Nếu tôi nhớ nhiều thứ hơn, tôi sẽ cập nhật bên dưới.
làm ơn, ai có thể tìm ra vấn đề là gì? REALLY đánh giá cao, Cảm ơn, Yoav.