私は2つのコンポーネントと1つは別のコンポーネントに座っています。私はそれを行うための任意の標準的な方法がある私に知らせてくださいEmberのコンポーネントがルートにアクションを送信します
(両方のコンポーネントが同じルートで使用)子コンポーネントからメインルートにイベントを送信する必要があります。
私は2つのコンポーネントと1つは別のコンポーネントに座っています。私はそれを行うための任意の標準的な方法がある私に知らせてくださいEmberのコンポーネントがルートにアクションを送信します
(両方のコンポーネントが同じルートで使用)子コンポーネントからメインルートにイベントを送信する必要があります。
短い答えとして、ember-route-action-helperアドオンを使用できます。
<button {{action (route-action 'onButtonClick')}}>ClickToCallRouteAction</button>
は、上から下に文字列として関数名を渡し、アクション通信の三方、
1.オールド・スタイルの古典的な機能のスタイルすなわちあります。すべての場所で同じ機能を定義して提供する必要があります。泡立てるにはsendAction
を使用してください。 send
メソッドは、コントローラからルート階層にバブルします。
これはお勧めしません。 サンプル古典的なスタイルactions twiddle
2.閉鎖アクションだけではなく、文字列の 使用action
ヘルパーパス機能。どこにでも定義する必要はありません。 sample twiddle for closure actionsスタイル
3. route-action-helper addon あなたが直接route-action
ヘルパーを使用してちょうどラップ機能により、どこでも文字通りからのルートアクションを呼び出すことができます。クラシックスタイルと閉鎖のスタイルとなぜ閉鎖の間
比較ですがpreferrableありますか?
onclick=(action (mut title) value="titlevalue")
(action 'save' target=session)
は、現在のコンテキストの代わりにsession
オブジェクトのactions
ハッシュを調べます。このに関する有望な記事の一部、
- miguelcambaの記事ember-closure-actions-in-depth
- emberigniterの記事send-closure-actions-up-data-owner
- 造船所 - - ember-best-practice-stop-bubbling-and-use-closure-actions
- ブログ1.13 release article
emberjsブログエンバーマップWhy action helper?
から - Alisdair McDiarmidのブログember-closure-actions-have-return-values
- alexdilibertoからのブログember-closure-actions
なぜ*旧式の古典的な機能のスタイル*は奨励されていませんか? (1)と(2)の違いをもっと詳しく説明できますか? –
@LiXinyang差異が更新され、クロージャーが推奨されている理由といい記事があります。 – kumkanillam
お時間をありがとう@kumkanillam。アップアップされました! +10これらの参考資料は全て偉大なものです –