3

ここ数か月、ember.js をオフまたはオンにして遊んでいましたが、「コントローラーはどのような役割を果たしているのか」といつも尋ねてしまいます。

App.Controller = Ember.Controller.extend({
  content: null
});

基本的な検証要件がある場合、ビュー自体でこれらを行う傾向があります。

コントローラーのコンテンツを入力する必要がある場合は、ルーターでこれを行います (ただし、現在のバージョンの ember でこのオブジェクトが持つと思われる責任の数を減らしたいと思います)。

私のモデルは、ember-data を介して別のアダプターを使用して保持され、必要に応じてドメイン ロジックのような動作が行われます。

私が構築したすべてのアプリに残っているのは、上記のように薄い (非常にロジックの少ない) コントローラーです。これは、アイテムの並べ替え/ページネーション/検索/フィルターなどを行うのに適した場所だと思いますが、適切に設計されたember.jsアプリでこのコントローラーオブジェクトが他に何を担当する必要がありますか?

4

1 に答える 1

3

あなたが言うように、ソート/ページ付け/検索/フィルター(BTWそれらのほとんどはEmber.ArrayControllerによってサポートされています)

他のものはコンテンツ(モデル)の周りの計算されたプロパティである可能性があると思います、そしてビューはそれ自体で仕事をする代わりにそれらの計算されたプロパティに依存します。

おそらく、ビューステート(たとえば、折りたたみ/展開)を追跡して永続化するのに適した場所である可能性があります。これは、毎回破棄/作成されるため、ビュー自体に永続化することはできません。

于 2012-12-27T16:09:34.713 に答える