2

我有一些来自 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 文件,我能做些什么来解决这个问题?(或者我可以在同一页面上运行相同的应用程序但彼此隔离吗?)

4

1 回答 1

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);
        });

    }
}
});

如果您发布您的控制器并查看您是否正确地做任何事情,这会更好

希望有所帮助

于 2014-04-20T17:35:30.210 回答