5

ember で懸念事項をどのように実装しますか。たとえば、招待機能を送信します。

  • ユーザーには 5 つの招待状があります (データの取得に関与するストア)
  • どのアプリケーション状態からでも招待可能
  • モーダルで表示されます
  • それは複数になる可能性があります-したがって、 {{outlet modal}} も機能しません
  • ユーザーは電子メールを入力して招待状を送信できます (利用可能な招待状の数が減少しました)

現在のモーダル実装 - したがって、コントローラーをビューに割り当てることはできません...

openModal: function(modal) {
  var modalView = this.container.lookup(modal);
  modalView.appendTo(MS.rootElement);
}

コンポーネントのアプローチは私にとってはうまくいきません: コンテンツ (モデル) はルーティングによってセットアップする必要があります。データのフェッチに役立つコンポーネントのイベントがわかりません。

ネストされたルートも同様に機能しません - 変更が多すぎます。

これに対する実用的なアプローチが見つかりません。助けてください。

前もって感謝します。

4

1 に答える 1

1

ビューにコントローラーを割り当てることができます。これは、ページのどこからでもビューを挿入し、コントローラーを割り当て、ビューを再ポップアップすると同じコントローラーを持つ簡単な例です (それが意図した結果である場合)。これで正しい方向に進まない場合は、お知らせください。

バブリングを使用して、アプリ内のどこからでも呼び出せるようにすることもできます。

http://emberjs.jsbin.com/uhoFiQO/4/edit

App.InviteView = Ember.View.extend({
  templateName: 'invite'

});

App.InviteController = Ember.Controller.extend({
  actions: {
    pretendToSend: function(){
     var invites =  this.get('invites'); 
      this.set('invites', invites-1);
    }
  }
});

App.ApplicationRoute = Ember.Route.extend({
  setupController: function(controller, model){
    var inviteController = this.controllerFor('invite');
    inviteController.set('invites', 5);
  },
  actions:{
    popInvite: function(){
      var inviteController = this.controllerFor('invite');
      // create/insert my view
      var iv = App.InviteView.create({controller: inviteController});
      iv.appendTo('body');
    }
  }
});
于 2013-11-06T15:15:05.827 に答える