0

ある種のソーシャルネットワークを作っているとしましょう。一方では、結果としてプロファイルのリストを表示する人を検索できます。一方、プロファイルのリストも表示する[友達]ボタンをクリックすることもできます。したがって、どちらの場合もプロファイルのリストを取得しますが、わずかな違いがあります。たとえば、srcondリストに[友達を作る]ボタンがない、またはすべてのリストアイテムに他の違いがあります。

私の質問は次のとおりです。この場合、両方のリストに対して1つのビュー、たとえば「listOfProfiles」を作成する必要がありますか?はいの場合、両方のいずれかに表示したい相違点またはその他のコンテンツをどのように処理しますか?そうでない場合、なぜですか?

私はこれが一般的な質問であることを知っています。バックボーンまたはMVC全般に慣れていないというだけで、その概念を理解したいと思います。

4

1 に答える 1

0

Backbone.js の優れた点の 1 つは、モデル インスタンスが同時に複数のコレクションに存在できることです。したがって、1 つのモデルが 1 つのコレクションで更新されると、同じインスタンスが他のコレクションで更新され、コレクションと両方のイベントが発生します。両方のモデル。

これが意味することは、ユーザーのすべてのインスタンスをプッシュするアプリケーション スコープで「グローバルな」UsersCollection を作成する必要があり、作成できるということです。

var UserCollection = Backbone.Collection.extend({});
var userCollection = new UserCollection();
    userCollection.update([models], {remove: false});

次に 2 番目の UserCollection を初期化するときに、'parse' メソッドにメソッドを追加して、グローバル usersCollection 内のモデル インスタンスを取得またはフェッチすることができます。これにより、同じ ID を持つモデルを 2 回インスタンス化することがなくなります。

各コレクションには異なるコンパレーターが接続されている可能性があるため、コレクションを互いに分離しておきます。アルファベット順にリストされたユーザー (友人) の 1 つのビューと、別の州によってリストされたユーザーの 1 つのリストを想像してみてください。

複数のコレクション内のモデルの単一インスタンスの力を試し、グローバル コレクションを通じてモデルの同期を維持してみてください。それが私の進むべき道です。

于 2013-02-02T19:48:12.057 に答える