2016-05-20 10 views
-1

フェッチを行い、正常に戻り、データを設定する機能があります。バックボーン - 属性を取得できません

しかし、データをモデルから再度取得する方法はありません。

fetchAcceptedTerms: function() { 
    var self = this; 
    this.appAcceptedTerms = new T1AppAcceptedTerms(); 
    this.acceptedTerms = new AppAcceptedTerms(); 

    this.acceptedTerms.fetch({ 
    success: function (data) { 
     console.log(data); 
     if (data.meta.status === 'success') { 
     self.appAcceptedTerms.set(data.data); 
     } 
    } 
    }); 

    console.log(self.appAcceptedTerms); 
    console.log(self.appAcceptedTerms.attributes); 
}, 

コンソールでの出力を参照してください:あなたが見ることができるように http://s32.postimg.org/ssi3w7wed/Screen_Shot_2016_05_20_at_14_17_21.png

を:

  • console.log(data);を予想通り、我々はそれを見ることができるように、データが正しく設定されている
  • console.log(self.appAcceptedTerms);をデータを返しますログ
  • console.log(self.appAcceptedTerms.attributes);が正常に動作せず、を返します

属性をすべて取得する方法をお手伝いできますか?

おかげ

+0

(あなたが'やっている前提'self.appAcceptedTerms'が' acceptedTemrs'と同じ属性を持つようにしたい場合は 'self.appAcceptedTerms.set(data.data)'行を 'self.appAcceptedTerms.set(data。 toJSON()) '。 – Cyclone

答えて

0

フェッチ操作は非同期ですので、あなたは、フェッチ操作が完了した後、あなたの属性をチェックする必要があります。期待どおりにあなたの属性を出力しますか? [バックボーンドキュメント](http://backbonejs.org/#Model-fetch)によると、 `SUCCESS`コールバックは引数として` `(モデル、応答、オプション)を受信

fetchAcceptedTerms: function() { 
    var self = this; 
    this.appAcceptedTerms = new T1AppAcceptedTerms(); 
    this.acceptedTerms = new AppAcceptedTerms(); 

    this.acceptedTerms.fetch({ 
    success: function (data) { 
     console.log(data); 
     if (data.meta.status === 'success') { 
     self.appAcceptedTerms.set(data.data); 
     console.log(self.appAcceptedTerms); 
     console.log(self.appAcceptedTerms.attributes); 
     } 

    } 
    }); 
} 
+0

ええ、ごめんなさい。 –

関連する問題