バックボーン バックボーンを使用している場合の 2 つの一般的なシナリオ:
属性はデフォルト値としてリストされ、設定されます
modelExample_A: Backbone.Model.extend({
defaults: {
whatever: 'foo'
something: 'blah'
}
});
viewExample_A: Backbone.View.extend({
//our view definition
});
var Example_A = new viewExample_A({
model: new modelExample_A()
})
Example_A.set({
'whatever': 'bar',
'something': 'weeeeeee',
});
属性がデフォルト値としてリストされていないため、設定します
modelExample_A: Backbone.Model.extend({
});
viewExample_A: Backbone.View.extend({
//our view definition
});
var Example_A = new viewExample_A({
model: new modelExample_A()
})
Example_A.set({
'whatever': 'bar',
'something': 'weeeeeee',
});
属性はデフォルト値として表示されず、作成時に設定されます
modelExample_A: Backbone.Model.extend({
});
viewExample_A: Backbone.View.extend({
//our view definition
});
var Example_A = new viewExample_A({
model: new modelExample_A({
'whatever': 'bar',
'something': 'weeeeeee',
})
})
しかし、モデルのプロパティを設定したい状況はどうでしょうか? これは一般的に推奨されていませんが、私のコードでは、どのモデルが現在のモデルの親であるかを not にしたい場合があります。これはほぼ確実に変更されることはないため、イベントのリッスン/onChange の目的で属性を配置する理由はありません。また、これはデフォルト値のないもの(コンテキストでしか値を取得できない)なので、モデルのプロパティとして設定するだけでいいですか?それとも、これは後で問題を引き起こすのでしょうか?
属性の代わりにプロパティを設定する
modelExample_A: Backbone.Model.extend({
defaults: {
whatever: 'foo'
something: 'blah'
}
});
viewExample_A: Backbone.View.extend({
//our view definition
});
var Example_A = new viewExample_A({
model: new modelExample_A({
'whatever': 'bar',
'something': 'weeeeeee',
})
})
Example_A.parentModel = parentModelExample;