3

アプリケーションでモーダル ダイアログを表示しようとしていますが、プログラムでページにレンダリングできるようにしたいと考えています。私のルートテンプレートは次のようになります

{{outlet}}
{{outlet "modal"}}

次に、ユーザーがボタンを押すと、コントローラーアクションが起動され、次のようなものを呼び出せるようにしたい

App.Modal.create().appendTo("modal");

appendTo は jquery セレクターを使用するため、明らかに機能しませんが、これを行うためのより良い方法を知っている人はいますか?

編集:

また、appendTo メソッドを使用することもできますが、そのたびに非推奨の警告が表示され、デフォルト コンテナーに追加できません。私は ContainerView を使用し、それを追加してからコンテナビューを更新しましたが、何も機能しませんでした。

4

1 に答える 1

2

ボタンの押下をコントローラーのアクションで処理する代わりに、ルーターにバブリングさせます。アウトレットは で定義されapplication.hbsているため、 でイベントを処理するのが理にかなっていApplicationRouteます。何かのようなもの:

App.ApplicationRoute = Ember.Route.extend({
  events: {
    openModal: function() {
      this.render('modal', { into: 'application', outlet: 'modal' });
    }
  }
});

これにより、モーダル ビュー/テンプレートがテンプレートのmodalアウトレットにレンダリングされますapplication

于 2013-07-03T17:53:57.490 に答える