2017-07-12 21 views
0

私は、条件に基づいた属性のデフォルト設定のヘルプを探しています。 モデルのみの条件に基づいて、デフォルトの名前をTESTに設定する方法を教えてください。 backboneモデルではattribute = 'xyz'となります。バックボーンモデル:条件に基づいたデフォルト

defaults: function() { 
    return { 
    name: 'TEST' 
    } 
} 

あなたが本当にすべてのインスタンスが属性へのアクセスを持っていないので、あなたがバックボーンモデルを拡張するときは、defaultsを設定おかげ

答えて

2

デフォルト値を変更する場合は、モデルを拡張するときにinitialize()コールバックを設定することをお勧めします(例:new MyModel({foo:"bar"}))。

var MyModel = Backbone.Model.extend({ 
    initialize: function(options) { 
    // I have access to this.attributes here 
    } 
}); 
+0

「defaults」は質問の関数です。あなたの最初の文は間違っています。 'this.attributes'は、属性が設定されているので' defaults'関数でアクセスされると空になります。したがって 'defaults'関数が呼び出されます。 –

+0

それは意味があります、あなたの助けに感謝します。 – HitRefresh

+0

@EmileBergeron私が言ったことに何も問題はないと思います。インスタンスの属性は、Underscoreの 'result()' – vassiliskrikonis

関連する問題