質問: data; riot.update();//効かない }); }; ``` Riot v2.6.1
回答: コールバック関数($.ajax > doneの部分)のコンテキストでは、thisはrecommendを指していません。 コールバック内からrecommendインスタンスを参照できるようにしてあげる必要があります。 ※単純なjsonを返すphpスクリプトを置いて動作確認を取りました。 ### $.ajaxのsettings.contextで指定するパターン [jQuery] contextに指定されたものがコールバック内でもthisとして扱われます。 ``` $.ajax({ // 略 context: this // recommendインスタンス }).done(function(data) { // ここでのthisもrecommendインスタンスになる ``` ### recommendをコールバック関数にbindするパターン [JavaScript] recommendを束縛した新しい関数を生成して、コールバックとして渡します。結果は同上。 ``` }).done(function(data) { this.item_list = data; riot.update(); }.bind(this)); ``` ### ざっくり代入パターン [JavaScript] thisの指すものが変わるのがそもそもの原因なので、一旦別の変数に代入します。 ``` var self = this; // 中略 }).done(function(data){ self.item_list = data; riot.update(); }); ``` jQueryなので1つ目がよいと思います。