Angular2传递函数导致子组件 - " this.bar不是函数"

时间:2017-02-08 13:47:53

标签: javascript angular typescript

我正在尝试将一个函数数据传递给一个孩子,但SO上的所有答案都是来自(alfa / beta)中的Angular2,我不知道我的问题是否来自事实已经发生变化发布。我已经尝试过关于SO的每一个答案,但它似乎没有摆脱我的错误,这是" this.bar不是一个函数"

现在我只想尝试使用函数传递一个简单的字符串:

父组件:

export class ParentComponent implements OnInit {
 foo() {
    return "This is a parent func stream value";
  }
}

父HTML

<child [bar]="foo()"></child>

子组件

export class ChildComponent implements OnInit {
@Input() bar : Function;

ngOnInit() {
  this.bar();
}

我没有看到问题,请帮我看看!

修改

&#34;功能&#34;上面的代码中的类型在我的编辑器中仍然是白色的,这让我感到困扰,但是只要我将代码粘贴到我的组件下面就像下面的示例一样,同样的&#34;功能&#34;变成蓝色,就像我的代码中的其他类型一样,所以我想弄清楚为什么这是......

子组件

export class ChildComponent implements OnInit {
@Input() bar : Function;  //The word "Function" here is white when it should be blue

ngOnInit() {
  this.bar();
}
}

@Input() bar: Function // This word "Function" is blue like it should be
  functionResult: any;
  ngOnInit() {
    this.functionResult = this.bar();
  }

1 个答案:

答案 0 :(得分:2)

bar真的不是一个功能。它计算函数调用的返回值。您的输入<child [bar]="foo"></child>需要一个函数作为其类型。

你应该尝试像{{1}}

那样做

修改
working plunker