新しいモデルがコレクションに追加されるたびにモデルの位置属性を増やしたいので、デフォルトを++コレクションに等しい位置を返す関数に変換しようとしましたが、成功しませんでした。誰もがこれを行うための最善のアプローチをアドバイスできますか?追加時にバックボーンモデルの属性値を自動的にインクリメントしますか?
var Col = Backbone.Collection.extend()
var Mod = Backbone.Model.extend({
defaults() {
return {
position: ++this.collection.length
}
}
})
var col = new Col([{
id: 1
}, {
id: 2
}])
col.toJSON() // returns [{id: 1}, {id: 2}]
可能性のある重複した[コレクション属性に基づいてバックボーンモデルのデフォルトを設定する方法](https://stackoverflow.com/questions/13232904/how-to-set-backbone-models-defaults-based-on-コレクション属性) –
具体的には[私の答え](https://stackoverflow.com/a/40476079/1218980)です。ほとんどの他の答えが言っているように 'create'、' add'などをオーバーライドしないでください。 –
だから私はそのように位置を設定するには、コレクションの追加イベントを突然使用することができますか?あなたはnewModelメソッドを達成しているかどうか分かりません。 – styler