组件中的Ember.js将带有数据的Action发送到另一个Component

时间:2016-11-16 03:02:40

标签: ember.js

组件操作完美触发。

import Ember from 'ember';

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

路线不会被触发。

import Ember from 'ember';

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

车把

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

我花了这么多时间用这个我开始对Ember.js失去兴趣,因为我也根据文档尝试过,但我得到了相同的结果。 http://emberjs.com/api/classes/Ember.Component.html#method_sendAction

1 个答案:

答案 0 :(得分:2)

sendAction无法访问route。 你有两个选择,

  1. 在控制器中定义searchField函数,从那里你可以路由函数this.send('searchField')

  2. 要从组件直接调用到路由,请为此添加ember-route-action-helper

  3. ember install ember-route-action-helper

    有关详细信息,请参阅answer。 玩耍 - Sample Twiddle