1

Enyo 2.3pre には新しい MVC メカニズムが組み込まれていますが、これに関するドキュメントが完全に存在します。

問題は、特定のコントローラーを自分のビューにバインドするにはどうすればよいですか?

たとえば、enyo.Control に基づく新しい種類があり、種類に基づくコントローラーがあります: 'enyo.ViewController',

私のコントローラーには、イベントを処理する関数を持つハンドラー オブジェクトがあります。

コントローラー内のハンドラーが呼び出されないため、ビューの名前を使用してビュー プロップをコントローラーに配置した場合、それは機能しません。

これについていくつかの例を投稿できますか?

4

2 に答える 2

5

そのため、enyo.ViewController は、デフォルトで、document.body に renderInto する必要があり、それを使用して enyo.Application の種類をアプリケーションの「開始点」として定義します。

Enyo の実装は、処理するすべてのビュー (または enyo.Control) に対して必ずしも適切なコントローラーを用意する必要がないという意味で、必ずしも「純粋な」MVC ではありません。Enyo は常に、一種のハイブリッド ビュー/コントローラー システムをコントロール自体に焼き付けてきました。

そうは言っても、実装に対する最近の変更により、「ビュー」を所有する「コントローラー」へのイベントのバブリングが削除されました。これは、多くの不要なオーバーヘッドが発生するためです。実際、さまざまなコントローラーへのアプリグローバル参照として enyo.Application の種類から「コントローラー」ブロックを削除し、代わりに、「従来の」Enyo 開発の典型としてコンポーネント ブロックに配置します。

したがって、現在の考えでは、ビューは以前と同じようにイベントを処理しますが、さまざまな「コントローラー」とモデルのプロパティにバインドできます。

現在でも、本当に必要な場合は MVC アーキテクチャを作成できますが、システムは「関心の分離」方法論 (MVC、MVP、MVVM など) をサポートするのに十分な柔軟性を備えています。

私の現在のやり方は、いくつかのこと (Web サービス要求の作成など) を行うための「コントローラー」を作成し、取得したデータからモデルを構築し、それらをコレクションに追加することです。モデルごとにいくつかの行を自動的に生成するデータベース対応コントロール (enyo.DataRepeater や enyo.DataList など)。

この簡単な例を見てみましょう: http://github.com/clinuz/college-football ですが、アプリ全体のコントローラーからコンポーネントへの切り替えに伴い、最新ではない可能性があることに注意してください。また、DataRepeater/List の「コントローラー」プロパティを削除し、「コレクション」に変更します。

さらにヒントが必要な場合はお知らせください。実装を最終決定するまでの間、ドキュメントの不足によりこれが困難になっていることは承知しています。我慢してください!

于 2013-10-28T22:02:15.557 に答える
2

enyo MVC 構造をチェックアウトする私の例を見ることができます。 https://github.com/prajnavantha/enyo-internetradio

基本的に、モデル、ビュー、コントローラーがあります。models: 私の場合は単純な enyo.Model の種類です。Uはenyo.collectionsなどを持つことができます...コントローラー:私はenyo.ModelControllerを使用しました。ビュー: 種類があります:

アプリケーションは完全に MVC ではありません。私のロジックはまだビューにあります。ただし、モデルの設定方法とコンポーネントの使用方法は理解できます。

于 2014-01-27T09:44:25.270 に答える