ファイルテーブルと、フォルダーテーブルに関連するファイルテーブルの外部キーを持つフォルダーテーブルを含むMySQLデータベースがあります。フォルダー コレクションの場合、コレクションにフォルダー モデルとファイル モデルを設定する必要があります。差分モデル ID が衝突するため、一方のモデルが他方のモデルを消去します。私の質問は、どうすればこれを克服できるかです。
1 に答える
1
この場合の ID の衝突を避けるために、Backbone が ID として使用する属性を変更することをお勧めします。標準は属性「id」ですが、idAttribute プロパティを変更することでこれを変更できます。
方法は次のとおりです。
idAttribute: 'uniqueId',
uniqueId は、絶対に衝突しないことがわかっている属性です。
一意の値がない場合は、作成する必要があります。これは、解析関数 (データがバックエンドから受信されたときに呼び出される) をオーバーライドすることで実行できます。これは、複合 ID を作成する方法です。
parse:function(data){
if(_.isArray(data){
_.each(data, function(record){
record['uniqueId'] = record['id'] + ':' + ([check if record is a file] ? record['folderId'] : '');
}
}
return data;
}
これで、すべてのフォルダーの uniqueId はそれらの ID と同じになり、ファイルの uniqueId はファイル ID とフォルダー ID を組み合わせたものになります。
于 2013-06-27T09:33:18.513 に答える