2012-01-03 4 views
3

Rails/Backbone/JSTテンプレートを使用した簡単なCRUDの実証に取り組んでいます。私はこの時点まで多くの例を見つけることができました。 (一覧画面に表示されている) バックボーンアプリケーションでフィードバック/エラーメッセージを表示するには

  • 情報メッセージに成功リストに追加された新しいアイテム:

    • 情報メッセージ:しかし、多くの検索や読書の後、私はこれらのシナリオを処理する方法の良い例を見つけることがまだました:フィールドでの問題(S)エントリ
    • フィールドレベルのエラーメッセージ:エントリに問題

    バックボーンオブジェクトである: コレクション(O項目が正常にリスト

  • エラーメッセージから削除しますf "post"モデル) - > Model( "post"オブジェクト) - > List/Edit/New Views(およびこれらの各ビューのJSTテンプレート)

    したがって、私は高レベルの説明を探しています私が望むメッセージングのレベルを達成するために、どのように自分のコードとテンプレートを整理しなければならないのか。フォーム入力時に自分の検証ルーチンをどのように実行するかについては、すでに変更があるたびに処理されています。しかし、今私はそれらを持っているエラーメッセージとは何を確認していない。

    ここに私が検討しているアプローチがあります。

    • 「メッセージ」モデルを作成します。これは、「ビュー」にマップされます。これは、既存のビューのサブビュー(可能な場合)です。このビュー/モデルでは、上記の最初の3つのシナリオでページレベルのメッセージとエラーを表示できます。 「サブビュー」を持つことが可能かどうか、またそのためのテンプレートをどのように処理するかは不明です。しかし、可能であれば、親テンプレートには「メッセージ」サブテンプレートを含めることができます。メッセージビューは、メッセージモデルの状態に基づいてサブテンプレートを表示/非表示にすることができます。実現可能か?愚か?
    • 第4のシナリオでは、フォームフィールドの変更によって "model.set"が呼び出されるたびに、モデルの検証によってエラーフィールドごとに特定のメッセージを含むエラーオブジェクトが返されます。私は "model.set"を中断したくないですが、私は各フィールドの隣にエラーメッセージを表示したいと思います。私は私の編集/新しいテンプレートと投稿モデル/ビューを、私がMVCパターンに違反しないような方法で考慮する方法を知りたい。私。私は間違ったplageにDOM要素への参照を入れたくありません。

    申し訳ありませんが、これは曖昧です。あなたが手助けをしたいと思っている場合は、役に立つコードスニペット(またはその他の詳細)を教えてください。

  • 答えて

    5

    グローバルイベントバスを作成します。エラーが表示されると、イベントが発生します。あなたのビューは、このイベントバス上のイベントを聴くメッセージを表示する必要があります。そうすることで、あなたのエラーメッセージビューはあなたのコレクションのすべてを知る必要はなく、その逆もあります。 eventbusは単純です:

    var eventBus = _.extend({}, Backbone.Events); 
    

    はあなたのコレクションにそれを追加し、これまでaddが呼び出されたときにそれをトリガー:http://lostechies.com/derickbailey/2011/07/19/references-routing-and-the-event-aggregator-coordinating-views-in-backbone-js/

    +0

    アンドレアス:

    var myCollection = Backbone.Collection.extend({ initialize: function([],eventbus){ this.bind('add', function(obj){eventbus.trigger('added', obj)} } }) 

    も記事を見てみましょう。ありがとう!それはまさに私が探していたものです。 – Matt

    関連する問題