-1

ファイルテーブルと、フォルダーテーブルに関連するファイルテーブルの外部キーを持つフォルダーテーブルを含むMySQLデータベースがあります。フォルダー コレクションの場合、コレクションにフォルダー モデルとファイル モデルを設定する必要があります。差分モデル ID が衝突するため、一方のモデルが他方のモデルを消去します。私の質問は、どうすればこれを克服できるかです。

4

1 に答える 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 に答える