私はバックボーンリレーショナルを初めて使用します。HasMany を使用する正しい方法がわかりません。
私は多くのParent
モデルを持っていますchildren
(「多く」とは、何千もの子供を意味します)。パフォーマンスの問題を回避するために、 in の巨大なリストを作成する代わりに、外部キー: で子をクエリし/child/?parent=1
ます。しかし、これはバックボーン リレーショナル作業の方法ではないようです。child_ids
Parent
だから私はこれを処理する正しい方法は何だろうと思っています。
1、json api を変更して、子 ID のリストを親に含めてから、バックボーン リレーショナルが推奨するように数千の ID を送信します。
url = function(models) {
return '/child/' + ( models ? 'set/' + _.pluck( models, 'id' ).join(';') + '/' : '');
}
// this will end up with a really long url: /child/set/1;2;3;4;...;9998;9999
2、バックボーンリレーショナルの多くのメソッドをオーバーライドし、この状況を処理させます。私の最初の考えは:
relations: [{
collectionOptions: function(model){
// I am not sure if I should use `this` to access my relation object
var relation = this;
return {
model: relation.relatedModel,
url: function(){
return relation.relatedModel.urlRoot + '?' + relation.collectionKey + '=' + model.id;
}
}
}
}]
// This seems work, but it can not be inherent by other model
// And in this case parent will have am empty children list at beginning.
// So parent.fetchRelated() won't fetch anything, I need call this url my self.
3, Backbone-relational のみを Store として使用し、次に Collection を使用して関係を管理します。
4、その他の魔法の方法またはパターンまたはバックボーン フレームワーク
手伝ってくれてありがとう。