Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将icajax与jsonp结合使用?_Javascript_Ajax_Ember.js_Rsvp.js - Fatal编程技术网

Javascript 如何将icajax与jsonp结合使用?

Javascript 如何将icajax与jsonp结合使用?,javascript,ajax,ember.js,rsvp.js,Javascript,Ajax,Ember.js,Rsvp.js,在控制器中: /*globals Ember*/ import { raw as icAjaxRaw } from 'ic-ajax'; ... myData: function() { var promise = new Ember.RSVP.Promise(function (resolve, reject) { var req = icAjaxRaw({ type: 'GET',

在控制器中:

/*globals Ember*/

import { raw as icAjaxRaw } from 'ic-ajax';
...
    myData: function() {
        var promise = new Ember.RSVP.Promise(function (resolve, reject) {
            var req = icAjaxRaw({
                type: 'GET',
                url: server+'/api/mydata?callback=?',
                dataType: 'jsonp', //problematic
            });
            req.then(
                function(result) {
                    console.log('myData', result.response);
                    resolve(result.response);   
                },
                function(response) {            
                    console.error('myData', response.jqXHR.responseText, response);
                    reject(response);
                }
            );
        });
        return promise;
    }.property(),
{{myData}}
。。。在使用该控制器的模板中:

/*globals Ember*/

import { raw as icAjaxRaw } from 'ic-ajax';
...
    myData: function() {
        var promise = new Ember.RSVP.Promise(function (resolve, reject) {
            var req = icAjaxRaw({
                type: 'GET',
                url: server+'/api/mydata?callback=?',
                dataType: 'jsonp', //problematic
            });
            req.then(
                function(result) {
                    console.log('myData', result.response);
                    resolve(result.response);   
                },
                function(response) {            
                    console.error('myData', response.jqXHR.responseText, response);
                    reject(response);
                }
            );
        });
        return promise;
    }.property(),
{{myData}}
这将显示:

    {
    "_id": 101,
    "_subscribers": []
    }
这看起来像是一个中间对象,而不是承诺要解决的问题。我有一种感觉,这可能与余烬运行循环有关,如


如何让模板显示控制台日志中显示的内容?

您不能从计算属性返回承诺

计算属性不解析承诺,这意味着“myData”是一个承诺,而不是承诺解析成的值。 您可能应该将其移动到路线的模型挂钩中。如果这不是一个选项,您可以这样做:

myData: {},

getMyData: function() {
  var self = this;
  var req = ic.ajax.raw({
    type: 'GET',
    url: 'http://ip.jsontest.com/?callback=?',
    dataType: 'jsonp'
  });
  req.then(
    function(result) {
      console.log('myData', result.response);
      self.set('myData', result.response);
    },
    function(response) {
      console.error('myData', response.jqXHR.responseText, response);
    }
  );
}.on('init')

检查此

直到有更多关于
ic ajax
库的问题,请不要为它创建标签。我从你的帖子中删除它是有原因的。@MartijnPieters这是对这个问题最重要的一个标签,不,不是真的。没有专家会遵循这个标签,现在还没有;没有人会在你的帖子后面附加一两个问题来找到你的帖子。不要一直重复添加标签。退却战争不会有任何结果。请代为讨论这些问题。您的特定标签由于一个问题而受到审查。因此,如果此标签只有一个问题,则该标签的有效性不会降低。通过阻止创建第一个,也可以阻止后续的创建。