Ember如何在不指定hbs中的操作的情况下触发操作

时间:2017-09-11 11:44:27

标签: javascript jquery ember.js

在我的Ember应用程序组件my-component.hbs中,我有

{{#my-grid gridInitialized="gridInstantiated" }}

现在在my-component.js中,我将其定义为以下操作;

actions: {
    gridInstantiated: function (myGrid) {       
    }
}

上述行动语法如何/为什么有效? 具体地

  
      
  1. “gridInstantiated”未在my-component.js
  2. 中定义为普通属性   
  3. 在hbs中,它的定义没有“action”关键字
  4.   

考虑到以上两点,我想知道它是如何工作的?

*********编辑************

添加,我在my-grid组件的init调用上有以下代码;

this.sendAction('gridInitialized', Ember.$.proxy(this, function () {
    this.fetchData();
}));

1 个答案:

答案 0 :(得分:1)

在经典操作中,为了触发他们将使用this.sendAction("actionName")的操作,这将在动作哈希调用中查找具有相应上下文的actionName函数。

https://embermap.com/notes/26-a-note-on-actions

中对其进行了很好的解释