私のアプリのロジックは非常に簡単です。JSONPを取得するモデルがあります(データには年、四半期が含まれ、四半期には異なるキー:値が含まれます)。データをフェッチした後、ビューはモデルの「変更」イベントをリッスンし、データをレンダリングします。ここまでは順調ですね。
ただし、「change:year」/「change:quarter」をリッスンし、変更に基づいて新しい URL でデータをフェッチする必要があります。ただし、「change:year」/「change:quarter」が発火すると、グローバルな「change」も発火します。
確かに、モデルの代わりにコレクションを使用する場合は、「リセット」があります。しかし、この場合、「change:year」を簡単にリッスンすることはできません。さらにいくつかのモデル (年、四半期、および四半期の各キー) を作成する必要があります。しかし、私はアプリをシンプルに保ちたいと思っています。
他の方法はありますか?それとも、より多くのモデルを作成する必要がありますか?
ありがとう。
UPD: 新しいデータをフェッチした後、モデルを再レンダリングする必要があるため、「変更」イベントがまだ必要です。
解決策: 変更が必要な属性を保持する共通のコントローラーを作成しました。そして .url() メソッドで Controller からそれらを取得して url を変更します。Collection の fetch()/"reset" 通知に固執し、"change" で Controller のリスナーを作成しました。したがって、「年」/「四半期」を変更すると、ビューはコントローラーから通知を取得し、対応するコレクションの取得-新しいURLで取得します。