我从jsonp文件中获得了一些数据。
worm.factory('simpleFactory', function ($http, gf) {
var simpleFactory = "";
return {
getJson: function ($scope) {
var url = 'myfile.json?callback=JSON_CALLBACK';
$http.jsonp(url).success(function (data) {
console.log("Got this", data);
}).error(function (data, status, headers, config) {
console.log("Data not available");
});
}
}
});
它本身在页面中运行良好。但是,如果同一个应用程序再次调用该查询,或者该应用程序在页面下方进一步复制(相同数据但图形的不同部分),我会收到错误。
鉴于它是一个静态json文件,我该怎么办? (或者我可以在同一页面上运行相同的应用程序但彼此隔离吗?)
答案 0 :(得分:0)
首先,如果您没有打电话,请从顶部删除GF。 正确的方法应该是:
worm.factory('simpleFactory', function ($http) {
return {
getJson: function (callback) {
var url = 'myfile.json?callback=JSON_CALLBACK';
$http.jsonp(url).success(function (data) {
callback(data);
});
}
}
});
将回调发送到该功能,以便您的控制器可以接收它。 我从来没有使用$ http.jsonp,但$ http就像这样
worm.factory('simpleFactory', function ($http) {
return {
getJson: function (callback) {
var url = 'myfile.json?callback=JSON_CALLBACK';
$http({method: 'jsonp', url: 'myfile.json?callback=JSON_CALLBACK'}).success(function (data) {
callback(data);
});
}
}
});
如果你发布你的控制器并查看你是否正在正确地进行翻转,那将会更好。
希望能够发挥作用