1

EmberJS で ID に基づいて投稿への単一のビューを作成するのに問題がありますが、配列の ID ではありません。実際には、Tumblr API から取得した json に付属する ID があります。

したがって、ID は「54930292」のようなものです。

次に、この ID を使用して別の jsonp を実行して、この ID の投稿を取得しようとします。API を開いて ID を入力すると機能し、実際に ID を含む単一の URL を開いた場合も機能します。問題は:

たとえば、フロント ページでリンクをクリックしてシングルに移動すると、何も返されず、エラーが発生します。

ただし、ページを更新すると、コンテンツが表示されます。

修正方法がわからず、助けていただければ幸いです:(

コードをオンラインにしました: http://tkrp.net/tumblr_test/

4

2 に答える 2

1

あなたが得ていたエラーは、SingleRouteがとして生成されていたArrayControllerが、json 応答が配列ではなかったためです。

App.SingleController = Ember.ObjectController.extend({

});

および他のヘルパーmodelを使用する場合、フックは起動されないことにさらに注意してください。linkToこれは、Ember が、モデルにリンクした場合、モデルが指定どおりであると想定し、そのモデルで setupController を直接呼び出すためです。あなたの場合、個々の投稿をロードする必要があります。setupControllerこれを行うためにルートにを追加しました。

App.SingleRoute = Ember.Route.extend({
  model: function(params) {
    return App.TKRPTumblr.find(params.id);
  },
  setupController: function(controller, id) {
    App.TKRPTumblr.find(id)
    .then(function(data) {
      controller.set('content', data.response);    
    });
  }
});

単一の投稿テンプレートを少し変更して、json の応答方法を反映させました。私が行った最後の変更の 1 つは、$.ajax. Ember は jQuery の promise を直接理解するので、解析を行う必要はありません。

これが更新されたjsbinです。

于 2013-06-28T15:22:40.900 に答える