0

我想从 devextreme 的 typescript 模块调用 jsonp 回调。以下代码不起作用。我想调用weatherResponse回调,但它在 TypeScript 模块中。

module tellmeweather {
    export function home(params: { id: any }) { 
        return {
            LocationValue: ko.observable("New York"),
            LocationResults:ko.observable("No Results"),
            goSearch: function () 
            {

                $.ajax({
                    url: 'http://api.openweathermap.org/data/2.5/weather?q='
                         + this.LocationValue() + ',it&callback=weatherResponse',
                    dataType: 'jsonp',
                    jsonp: 'weatherResponse',
                    success: function () {

                    }
                });
            }
            ,
            weatherResponse: function (locdata:any)
            {    
                this.LocationResults("Location Name:"+locdata.name);    
           }
        };
    }
}
4

1 回答 1

0

根本不要指定 'jsonp' 参数。让 jquery 解决它。执行 ajax 请求,如下所示

$.ajax({
    url: 'http://api.openweathermap.org/data/2.5/weather?q=' + this.LocationValue() + ',it&callback=?',
    dataType: 'jsonp'
}).done(function(result) {
    // code here
});

您可以在 github https://github.com/nils-werner/owm-display/blob/master/js/loader.js上找到工作脚本

于 2014-08-21T10:42:13.353 回答