2011-12-29 5 views
12

ember.jsのコントローラは、iOS上のメインビューの領域/シーンに結びつけられるのか、それともデータのセットに結びつくのでしょうか?Emberのコントローラの典型的な動作について

emberの同じコントローラにいくつかのメインビューを結びつけるのは一般的なことですか?

iOSでは、画面の主要部分またはセクションは、1つのコントローラに関連付けられています。別のメインインターフェースを提示したい場合は、新しい要素を作成するためのモーダルウィンドウを挙げます(通常は、そのビューとそのデータ/ロジックを管理する完全に別のコントローラーがあります)。

Zend Frameworkのようなものでは、認証を保証するためのいくつかの一般的なスピンアップ手順を実行するコントローラがありますが、主にコントローラがiOSで行う役割を担い、ロジックを処理して1つのメインセクションまたはビュー(ウェブであると、これは通常ページ全体になります)。

emberでコントローラを使用する際の典型的な役割または推奨パターンは何ですか?

答えて

17

ここではいくつかの質問がありますので、一度に1つずつご説明します。

まず、コントローラがデータ指向かビュー指向のどちらであるべきか尋ねました。私の経験では、両方の行動が許されています。コントローラは、フィルタリングや検索など、アプリケーションのデータセットを管理する優れた方法です。 Evin GranoはSproutCoreの観点からこの点について良い記事を書いており、Emberにもほとんどの概念が当てはまります:http://www.itsgotwhatplantscrave.com/2009/07/30/root-controller-paradigm/。コントローラは、アプリケーションの状態や動作を制御するのにも適しています。たとえば、アプリケーション内のボタンアクションとしてバインドされているコントローラにメソッドを配置することができます。しかし、Ember Statesを調べて、これらがあなたのシナリオに適しているかどうかを調べるべきです。

第2に、複数のビューを同じコントローラに結び付けることについて質問しました。個人的には、コントローラーが明確な目的を持っている限り、私はこれについて懸念していません。ビューが論理的に関連しており、同じ状態またはデータで共有されている場合、単一のコントローラが意味をなさない。コントローラーが大きくなりすぎて、複数のコントローラーに分割することを検討する必要があります。

+1

ありがとうございました。良い情報。私はこれを正解とマークすることにしますが、他の人がパイプに入っているかどうかを確認するために1日ほど開いたままにします。まだember州に関する良い記事はありますか? –

+0

恵まれた州に興味がある人は、これが便利だと分かるかもしれません:http://imediava.wordpress.com/2012/08/22/ember-states-routing-tutorial/ – txominpelu

1

Ember.jsの私の限られた経験から、私は次のように規定している:

  • ビューは独自のインスタンスに制限されたプレゼンテーション層の変化に関連したユーザーアクションを処理します。

  • ナビゲーションコントローラ/ statemanagerは、表示されているものの複雑な操作(複数のビューの追加、その他の削除など)を処理します。

  • コントローラーは、データレイヤーに関連するユーザーの操作に応答します。

関連する問題