###前提・実現したいこと
Backbone.jsのModel内で、xmlから値を取得してきて、プロパティにセットする、ということを行いたいと考えています。
そこで以下のようなコードを書きました。
ModelのsetDataメソッドを実行したのですが、うまくプロパティをセットできませんでした。
おそらく原因は「this」にあると考えています。
this.set('data', data);
の「this」が、Data Modelではなく、xmlの構造(?)を指し示しているからだと考えています。
下記のように、ajax関数の中でプロパティを設定したい場合、「this」をData Modelとしたい場合、どうすればよいのでしょうか?
ご回答いただけると助かります_(..)
###該当のソースコード
javascript
1var Data = Backbone.Model.extend({ 2 defaults: { 3 data: '' 4 }, 5 setData: function(){ 6 $.ajax({ 7 url: 'data.xml', 8 type: 'GET', 9 dataType: 'xml', 10 timeout: 1000, 11 error: function(){ 12 alert('ロード失敗'); 13 }, 14 success: function(xml){ 15 //xmlからデータを取得 16 var data = $(xml).find('data').attr('number'); 17 18 //dataをModelにset 19 this.set('data', data); 20 } 21 }); 22 } 23});
###追記
setDataメソッドの頭で、
var data = this;
として、
data.set('data', data);
とすれば、望んだ処理にはなるのですが、何か違和感が…
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。