私は、ルートに割り当てられたコントローラとちょっと混乱しています。EmberJS 2.10ルート上でアクションを設定するためにネストされたルートコントローラを正しく設定する方法は?
私はルート上の「showModal」というアクションを作成したいが、私は使用している場合、このコードの残り火はアクションがルート上に定義されていないというエラーが送信されます。
export default Ember.Route.extend({
actions: {
showModal: function (params) {
console.info(params);
if (params) {
Custombox.open({
target: '.mModal',
closer: false
});
} else {
Custombox.close();
}
}
}
});
しかし、私が使用している場合次のコードはすべて正常に動作するよう、モーダルアクションは任意のコンポーネントによって呼び出すことができます。
export default Ember.Route.extend({
setupController: function (controller, model) {
this._super(...arguments);
controller.set('actions', this.actions);
},
actions: {
showModal: function (params) {
console.info(params);
if (params) {
Custombox.open({
target: '.mModal',
closer: false
});
} else {
Custombox.close();
}
}
}
});
私はルートにコントローラを割り当てることができますどのように、知っていただきたいと思いますか?アクションはルート上で正しく定義されます。新しい燃えさしグラムルート/引用
アップデート1:あなたがしている
を追加しましたHBSコード
<div class=row>
{{form-employee-search modal=(action "showModal")}}
</div>
クロージャアクションを使用している場合は、コントローラ上のルートでしかアクションを定義できません。 –
Teのアイデアは、コンポーネントがアクションを実行し、ルートアクションを呼び出すことです.2番目のコードは機能を実行します – DeividKamui
コンポーネントを呼び出す場所にテンプレートを貼り付けることはできますか? –