0

Google jsapi を介して XML フィードをアプリに取得しようとしていますが、非常に近づいていますが、このエラーでヘッドバンギングの段階にあります。

不明なエラー: DOM にない Metamorph に対して操作を実行できません。

問題は次の行です。me.pushObject(t);

その関数内から親スコープにアクセスするにはどうすればよいですか? 私はこれに間違ったアプローチをしていますか、これを行うためのまったく別の方法はありますか?

XML を取得していることを確認できますが、その関数からそれを取り出して残り火に戻すことはできません。

必死になって、私はApp.myController.pushObject(t);他の多くのコミカルな解決策を試しました。

私は JSON でテストし、100% 動作しますが、XML RSS をロードする必要があるため、それはできません。

問題のスニペットを次に示します。

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

2 に答える 2

1

この関数全体を削除 してjSON呼び出しにfunction feedLoaded(result) {置き換えると、正常に機能し、 jSONデータがコントローラーに返されます。

于 2012-09-21T04:39:03.063 に答える
0

jQuery.proxy() [jQuery リファレンス]を試してみて、それが役立つかどうかを確認できると思います。

したがって、 の代わりに、 を使用するコンテキスト (this) としてfeed.load(feedLoaded);設定を試み、 feedLoaded 内で別のことを行うことができます。mefeedLoadedfeed.load($.proxy(feedLoaded, me));me = this

また、me.set('content', []);コンテキストにも問題はありませんか?多分私はあなたの問題を誤解しています。

于 2012-09-21T03:38:52.573 に答える