それぞれ異なるモデルを使用して、2 つの異なるバックボーン コレクションに戻る 2 つのデータセットがあります。両方のモデルは、それらをリンクするために使用できるフィールドを共有しています。
2 番目の ajax 呼び出しは、一種のプリローダーとして、最初の呼び出しがロードされた後に行われます。
2 番目のコレクションが (「リセット」イベントで) 正常にフェッチされたら、共通フィールドに同じ値を使用して、何らかの方法でモデルをバインド/結合 (または単に JSON をコピーします。これは一方通行の読み取り専用です) したいと考えています。一致する他の各モデルのプロパティ。
読み直して、あまりよく読んでいないと思いますが、うまくいけば理解できます...
コレクション 1
[
{
foo: 'text',
bar: 'xxx'
},
{
foo: 'text',
bar: 'yyy'
}
]
コレクション 2
[
{
prop1: 'a',
prop2: 'b',
bar: 'xxx'
}
]
生データが追加された場合でも、バインディングが確立された場合でも、コレクション 1 の JSON をこのように読み取れるようにしたい
[
{
foo: 'text',
bar: 'xxx',
prop1: 'a',
prop2: 'b',
},
{
foo: 'text',
bar: 'yyy'
}
]
または
[
{
foo: 'text',
bar: 'xxx',
extraProps: {
prop1: 'a',
prop2: 'b'
}
},
{
foo: 'text',
bar: 'yyy'
}
]
どんな助けでも大歓迎です。それを達成できると私が考えているすべての方法は、あまりバックボーン的ではないようです
PS: この質問にタグを付けているときに、バックボーン リレーショナル タグに気付きました。私はそこを読んで、役に立つものがあれば投稿します。良い検索フレーズを形成するのは非常に難しい質問です...
編集
返信ありがとうございます。簡単なスクリプトを書くために立ち去ったところ、完了する前にいくつかの返信があることに気付きました。とにかく、参考までに、最初の、おそらく非常に怪しいスクリプトを追加します。mailing/mailing_id に同じフィールド名がないという事実を無視してください。現時点ではデータ ソースを制御できません...
<script>
var matches = 0;
_.each(clicks.models, function(click) {
_.each(mailshots.models, function(mailshot){
if(click.get('mailing') == mailshot.get('mailing_id')){
matches++;
click.set('subject',mailshot.get('mailing_subject'));
}
});
});
if(matches) clicks.trigger('reset');
</script>
とにかく、それはうまくいきます。しかし、最初の応答をテストして、バックボーン リレーショナルを一目見ようと思います。今は必要以上かもしれませんが、面白そうです...