2014-07-12 1 views
8

:jsonp에서 ic-ajax를 사용하는 방법? 컨트롤러에서

/*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": [] 
    } 

약속은로 결의된다. 이것은 ember 실행 루프와 관련이있을 것이라고 생각합니다. mentioned here

콘솔 로그에 표시되는 내용을 표시하는 템플릿을 얻는 방법은 무엇입니까?

+0

은'IC-ajax' 라이브러리에 대한 질문의보다 실질적인 몸이있을 때까지, 생성하지 않는하시기 바랍니다 그것을위한 태그. 이유가있어 귀하의 게시물에서 삭제했습니다. –

+2

@MartijnPieters이 질문에 가장 중요한 태그입니다. – bguiz

+0

아니요, 실제로는 아닙니다. 어떤 전문가도 아직 그 태그를 따를 것이다. 하나 또는 두 개의 질문이 첨부 된 태그를 따라 가면서 * 아무도 * 귀하의 게시물을 찾을 수 없습니다. –

답변

0

계산 된 속성에서 약속을 반환 할 수 없습니다.

계산 된 속성은 약속을 해결하지 못합니다. 즉, 'myData'는 약속이 해결하는 값이 아니라는 약속입니다. 이것을 Route의 모델 훅으로 옮겨야합니다. 그 옵션이없는 경우이 같은 작업을 수행 할 수 있습니다

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') 

확인이 JSBin

관련 문제