2017-03-09 15 views
0

ユーザープロファイルデータを取得して使用するモデルを作成していますが、データを取得するたびに問題が発生します(成功応答テキストJSONは使用可能です) 。だから私は手動で設定する必要があります。これは私のコードです:バックボーンJSモデルのフェッチで自動的に属性が更新されない

UserTest = Backbone.Model.extend({ 
    defaults: { 
    userid: null, 
    full_name: null, 
    photo: null, 
    sec_access: null 
    }, 
    urlRoot: 'data/userprofile.php', 
    parse: function (response) { 
    if (response.photo == null || response.photo == '') response.photo ='images/default-usericon.png'; 
    } 
}); 

var usertest = new UserTest; 
usertest.fetch().then(function(user){ 
    usertest.set('userid',user.userid); 
    usertest.set('full_name',user.full_name); 
    usertest.set('photo',user.photo); 
    usertest.set('sec_access',user.sec_access); 
    console.log(usertest.get('userid')); 
}); 

良い方法ですか?それとも間違っているのですか?

+0

また、あなたがset' 'に属性のハッシュを渡すことで、複数の属性を設定することができます。 'usertest.set({userid:user.userid、full_name:user.full_name、/ * etc * /})'を実行します。 –

+0

また、['_.pick'](http://underscorejs.org/#pick):' usertest.set(_。pick(user、 'userid'、 'full_name'、/ * etc * /)を使うこともできます。 ; ' –

答えて

1

あなたはparseからデータを返す必要があります。

parse: function (response) { 
    if (response.photo == null || response.photo == ''){ 
    response.photo ='images/default-usericon.png'; 
    } 
    return response; // This is very important 
} 
+0

ワウありがとう –

関連する問題