2011-07-05 8 views
2

私は古いアプリをbackbone.jsでリファクタリングしています。これはbackbone.js MVCパターンの正しい実装ですか?

私はTodoList tutoをスルーすると、すべてのことが一緒に収まるようにはまだ分かりません。今の

、私が持っている:初期化され

  • GlobalControllerを、それが&他のオブジェクトの初期化をroutingグローバルアプリ全体で処理します。

  • このGlobalControllerは私のアプリ内の他のすべてのコントローラ、その後& GlobalAppView(AJAXクリックをどのように扱うかのようなグローバルアプリ全体のアクションを、)初期化します。 TagControllerよう

  • Thosesコントローラ、独自のコレクションを初期化し、(BlueTagList & App.TagListコレクションを拡張RedTagList)、(それはコントローラの名前空間であるべき?)window名前空間に保存されています。その後、コントローラは、私の意見のどこかに呼ばれ

  • TagsController->render('BlueTagListView', {el: '#container', collection : BlueTagList, data : ...});

は、このスキームのいずれかの流れがありますか?おかげさまで

答えて

1

個人的に私は、Backbone.jsが少し物事を改めた場合、物事はもっと明確になると思います。

Models  -> Models 
DOM subtrees-> Views (view.el in the backbone case) 
Views  -> Controllers 
Controllers -> HashchangeController (A specialized type of controller) 

Backbone.jsはMVCフレームワークですが、ちょっと変わった名前付け規則です。これは、Backbone.Controllerを使用する必要があることを示唆しているか、モデル/ビューを実行しているだけであることを示唆しています。しかし、そうするよう圧力をかけてはいけません。

にブックマーク可能なリンクが本当に必要な場合を除いて、Backbone.Controllerなしでアプリケーションを構築することは完全にOKです。あなたが冷静にするなら、絶対に必要なわけではありません。 URLバーは、コントローラに書き込むことができるページ上の別のウィジェットです。

上記のようにコンポーネントを考えてみると、より簡単になるでしょう。

+2

奇妙なことに、昨日Backbone.jsの新しいリリースがあり、所有者はControllerからRouterへの名前を変更することで大きな変化を起こしました。明らかに、他の人たちも私と同じような観察をしてきました。 – bradgonesurfing

関連する問題