使用回调函数作为Component @Input()时的Angular2未定义对象属性

糊状

我试图将回调函数绑定到指令,当事件被触发时,父组件的属性未定义

应用程序

import {Component} from 'angular2/core';
import {bootstrap} from 'angular2/platform/browser';
import {MyComponent} from './my-component';

@Component({
  selector: 'my-app',
  template: `
  <button (click)="appOnClick('CLICK FROM APP')">BUTTOM OUTSIDE COMPONENT</button>
  <br><br>
  <my-component [onClick]="appOnClick"></my-component>`,
  directives: [MyComponent]
})
export class MyApp { 
  
  public theBoundCallback: Function;
  test:string = "THIS SHOULD HAVE A VALUE";
  
  public ngOnInit(){
    this.theBoundCallback = this.appOnClick.bind(this);
  }
  
  appOnClick(someText){
    
    console.log(someText);
    console.log(this.test);
    
  }
}

bootstrap(MyApp);

我的component.ts

import {Component, Input} from 'angular2/core';

@Component({
  selector: 'my-component',
  template: `<button (click)="onClick('CLICK FROM COMPONENT')">BUTTOM INSIDE COMPONENT</button>`
})
export class MyComponent{

  @Input() onClick: Function;
  
}

这将呈现两个按钮:

BUTTOM之外的组件,直接从应用程序调用appOnClick函数,当单击控制台时显示:
-从应用程序中单击
-应该具有一个值

BUTTOM INSIDE COMPONENT,它通过组件中的@Input函数调用appOnClick函数,当单击控制台时显示:-CLICK
FROM APP
-undefined

我已经在Plunker上创建了示例

这是一种正确分配此方法的方法,以便在触发回调时可以使用我的对象属性吗?

画摩尔

更新的plunkr

为了通过appOnClick这种方式,您需要像这样声明它为属性:

export class MyApp {
  ...
  appOnClick = (someText) => {
    console.log(someText);
    console.log(this.test);
  }
} 

代替:

export class MyApp {
  ...
  appOnClick(someText){
    console.log(someText);
    console.log(this.test);
  }
} 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

未使用回调时函数返回未定义,使用回调时,JS 表示函数未定义

来自分类Dev

使用回调“未定义不是函数”

来自分类Dev

使用回调函数之外的参数值(未定义)

来自分类Dev

使用ngFormModel(ES6)时angular2无法读取未定义的属性'validator'

来自分类Dev

使用回调函数“每个”时出错

来自分类Dev

在快速路由中使用回调函数时的未定义参数

来自分类常见问题

执行回调函数时,Angular2组件的“ this”未定义

来自分类Dev

当绑定函数可以删除时如何安全使用回调

来自分类Dev

如何在 angular 4 中使用回调函数?

来自分类Dev

Angular 2-对象属性作为未定义返回,但它们存在

来自分类Dev

在 angular2 中使用 setElementClass 时未定义“classList”

来自分类Dev

使用@input在Angular 2中“无法读取未定义的属性'名称'”

来自分类Dev

如何在angucomplete-alt选定对象属性上使用回调函数?

来自分类Dev

销毁对象时调用回调函数

来自分类Dev

Angular $ resources何时使用回调函数以及如何获取对象“干净”

来自分类Dev

angular2 ReferenceError:未定义angular新的angular.Component({

来自分类Dev

如何在Obj-C中使用回调定义Javascript函数?

来自分类Dev

我应该在自定义函数中使用回调模式吗?节点js

来自分类Dev

我应该在自定义函数中使用回调模式吗?节点js

来自分类Dev

如何在SharePoint客户端对象模型中使用回调函数?

来自分类Dev

使用回调函数时节点js中响应对象的范围

来自分类Dev

使用回调函数时,jQuery表单提交不起作用

来自分类Dev

当我可以简单地调用它们时,为什么要使用回调函数?

来自分类Dev

在parse.com中使用回调函数时,如何保留范围?

来自分类Dev

使用回调函数时,jQuery表单提交不起作用

来自分类Dev

当您可以在 Javascript 中全局调用函数时,为什么要使用回调?

来自分类Dev

在特征对象上使用回调

来自分类Dev

AngularJS $ interval:使用回调函数作为传入函数的参数

来自分类Dev

使用回调时更新GUI句柄

Related 相关文章

  1. 1

    未使用回调时函数返回未定义,使用回调时,JS 表示函数未定义

  2. 2

    使用回调“未定义不是函数”

  3. 3

    使用回调函数之外的参数值(未定义)

  4. 4

    使用ngFormModel(ES6)时angular2无法读取未定义的属性'validator'

  5. 5

    使用回调函数“每个”时出错

  6. 6

    在快速路由中使用回调函数时的未定义参数

  7. 7

    执行回调函数时,Angular2组件的“ this”未定义

  8. 8

    当绑定函数可以删除时如何安全使用回调

  9. 9

    如何在 angular 4 中使用回调函数?

  10. 10

    Angular 2-对象属性作为未定义返回,但它们存在

  11. 11

    在 angular2 中使用 setElementClass 时未定义“classList”

  12. 12

    使用@input在Angular 2中“无法读取未定义的属性'名称'”

  13. 13

    如何在angucomplete-alt选定对象属性上使用回调函数?

  14. 14

    销毁对象时调用回调函数

  15. 15

    Angular $ resources何时使用回调函数以及如何获取对象“干净”

  16. 16

    angular2 ReferenceError:未定义angular新的angular.Component({

  17. 17

    如何在Obj-C中使用回调定义Javascript函数?

  18. 18

    我应该在自定义函数中使用回调模式吗?节点js

  19. 19

    我应该在自定义函数中使用回调模式吗?节点js

  20. 20

    如何在SharePoint客户端对象模型中使用回调函数?

  21. 21

    使用回调函数时节点js中响应对象的范围

  22. 22

    使用回调函数时,jQuery表单提交不起作用

  23. 23

    当我可以简单地调用它们时,为什么要使用回调函数?

  24. 24

    在parse.com中使用回调函数时,如何保留范围?

  25. 25

    使用回调函数时,jQuery表单提交不起作用

  26. 26

    当您可以在 Javascript 中全局调用函数时,为什么要使用回调?

  27. 27

    在特征对象上使用回调

  28. 28

    AngularJS $ interval:使用回调函数作为传入函数的参数

  29. 29

    使用回调时更新GUI句柄

热门标签

归档