2017-01-24 5 views
1

私は、ルートに割り当てられたコントローラとちょっと混乱しています。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> 
+0

クロージャアクションを使用している場合は、コントローラ上のルートでしかアクションを定義できません。 –

+0

Teのアイデアは、コンポーネントがアクションを実行し、ルートアクションを呼び出すことです.2番目のコードは機能を実行します – DeividKamui

+0

コンポーネントを呼び出す場所にテンプレートを貼り付けることはできますか? –

答えて

0

私は私のルートを作成するために、次の燃えさし-CLIコマンドを使用ところで

おそらく、(action(action 'actionName')構文を使用して)クロージャーアクションとしてテンプレート内のアクションを定義します。クローズアクションは、コントローラで定義する必要のあるルートでは定義できません。コントローラを作成してそこにアクションを定義するか、ルート上でクロージャアクションを定義できるようにするember-route-action-helperを使用できます。 https://github.com/DockYard/ember-route-action-helper

コントローラをルートに割り当てる方法については、ルートと同じパスのコントローラを作成する必要があります。 guide

my-controller-nameの値は、レンダリングするRouteの名前と一致する必要があります。したがって、blog-postという名前のルートには、blog-postという名前のコントローラがあります。

プロパティをカスタマイズしたり、アクションを提供したい場合は、コントローラを生成する必要があります。カスタマイズしていない場合、Emberは実行時にControllerインスタンスを提供します。

+0

コントローラーを作成してルートに割り当てるにはどうしたらいいですか? – DeividKamui

+0

ember gコントローラを使用して、あなたのルートと同じパスを提供してください - ember g controller new/quote –

+0

それを試してみましょう。その作業があれば教えてもらえますが、私はすでにそれを試していたと確信しています動作しません。 – DeividKamui

関連する問題