2016-11-16 5 views
2

コンポーネントアクションが完全にトリガします。コンポーネント内のEmber.jsがデータを含むアクションを別のコンポーネントに送信

import Ember from 'ember'; 

export default Ember.Component.extend({ 
    actions: { 
     searchField: function() { 
     console.log('searchField'); 
     this.sendAction('searchField'); 
     } 
    } 
}); 

ルートがトリガーされません。私はまた、マニュアルに従って試しているように私は、Ember.jsに興味を失い始めていますが、私は同じ結果を得るこれに多くの時間を費やしている

import Ember from 'ember'; 

export default Ember.Route.extend({ 
    actions: { 
     searchField: function() { 
     console.log('ROUTE'); 
     } 
    } 
}); 

ハンドルバー

{{input key-up='searchField' searchField=(action "searchField")}} 

http://emberjs.com/api/classes/Ember.Component.html#method_sendAction

助けが役に立ちます。

ありがとうございます。

答えて

2

sendActionrouteには届きません。 あなたは直接ルートにコンポーネントからの呼び出しにルート機能this.send('searchField')

  • をすることができますが、2つのオプションがあり

    1. がコントローラにsearchField関数を定義し、そこから、このためのアドオンember-route-action-helperがあります。

    ember install ember-route-action-helper

    詳細はanswerを参照してください。 遊ぶために - Sample Twiddle

  • +1

    私は 'ember-route-action-helper'が好きです。それを使用しない場合、コンポーネントは別のコンポーネントのテンプレートまたはルートのテンプレートに配置されるかどうかを意識する必要があります。 – ykaragol

    +0

    @ykaragolどのようにコンポーネントがコントローラーに配置されていることをコンポーネントに認識させるのですか? –

    +0

    @kumkanillamこれは正しく動作し、解決策を提示しましたが、取るべきメモは、component.jsアクション空です。 –

    関連する問題