2

我在我的组件中使用 ng2-smart-table。

我正在尝试调用父组件的approveTheOrder()方法,但无法获取父类的对象

下面是片段

{
  title: "Actions",
  type: "custom",
  renderComponent: ActionRenderComponent,
  onComponentInitFunction(instance) {
    instance.actionEmitter.subscribe(row => {
      if(row == CONSTANT.STATUS_APPROVE){
        //here 'row' value is from childComponent-ActionRenderComponent,which I am able to get easily in parentComponet 
       this.approveTheOrder(instance.rowData.id); // here this is undefined, 

      }
      if(row == CONSTANT.STATUS_REJECT){
        this.rejectOrder();//this is undefined
      }
      if(row == CONSTANT.STATUS_PENDING){
        this.pendingOrder(); // this is undefined
      }
    });
  },

  filter: false
};

有谁知道如何在下面的 onComponentInitFunction() 中获得“this”?

下面是我得到的错误的图像。在此处输入图像描述

此外,我尝试使用“绑定”功能未能成功实现目标,谁能在这里指导我,我真的被困在这一点上。

编辑 1 请注意,我可以从parentComponent中的ChildComponent获取事件,但这里的问题特定于 ng2-smart-table 组件。

要从ChildComponent获取值,我正在尝试使用ng2-smart-table 组件的内置回调函数onComponentInitFunction(instance)

4

1 回答 1

13

以下语法:

{
  onComponentInitFunction(instance) {
    ...

将转换为函数表达式:

{
  onComponentInitFunction: function(instance) {
    ...

您应该使用箭头函数来保留this

onComponentInitFunction: (instance) => {
于 2017-10-06T20:33:57.337 回答