2012-09-20 1 views
0

Google jsapi를 통해 내 앱에 XML 피드를 보내려고 노력 중이며 너무 가까이에 있지만이 오류가 발생했습니다.Google jsapi를 통해 ember.js로 RSS/XML 피드로드

캐치 오류 : DOM에없는 메타 모프에서 작업을 수행 할 수 없습니다. me.pushObject(t);

어떻게 내가 그 함수 내에서 부모 범위를 액세스합니까 :

문제는이 라인입니까? 내가이 잘못에 접근하고 있는가?이 일을하는 완전히 다른 방법이 있는가?

나는 XML을 다시 얻고 있다는 것을 확인할 수있다. 나는 그 기능을 다시 사용할 수 없다.

필사적으로 나는 App.myController.pushObject(t); 및 많은 다른 우스꽝스러운 해결책을 시도했습니다.

JSON으로 테스트하고 100 % 작동하지만 XML RSS를로드해야합니다. 난 당신이 jQuery.proxy() [jQuery reference]를 사용하여 시도하고 도움이되는지 볼 수 있다고 생각

App.myController = Ember.ArrayController.create({ 
    content: [], 
    init: function(){ 
     me = this; 

     function feedLoaded(result) { 
      me.set('content', []); 
      if (!result.error) { 
       var mObj = []; 
       for (var i = 0; i < result.feed.entries.length; i++) { 
        var cData = result.feed.entries[i]; 
        var t = App.HospTime.create({ 
         title: cData.title, 
         name: cData.name, 
         date: cData.date 
        }); 
        me.pushObject(t); 
       } 
      } else { 
       alert(result.error); 
      } 
     } 

     var feed = new google.feeds.Feed("myrss_feed.xml"); 
     feed.load(feedLoaded); 
    } 
}) 

답변

0

: 여기

문제의 조각입니다.

그래서, 대신 feed.load(feedLoaded);, 당신은 feed.load($.proxy(feedLoaded, me));을 사용 feedLoaded의 컨텍스트 (이)로 me 설정을 시도하고 feedLoaded 안에 다른 me = this을 할 수 있습니다.

또한 me.set('content', []);에도 컨텍스트에 문제가 있습니까? 어쩌면 내가 너의 문제를 오해하고있다.

+0

제안 해 주셔서 감사합니다. 시도했지만 아무 것도하지 않았습니다. – user1680391

1

나는이 전체 기능 function feedLoaded(result) {를 제거하고 잘 작동하고 데이터를 다시 컨트롤러에 JSON을 전달하는 JSON 전화로 교체합니다.