如何将typescript表达式传递到angular 2组件

如何将typescript表达式传递到angular 2组件,angular,typescript,Angular,Typescript,我需要将一个简单的表达式传递到我的角度分量中 这就是我想使用它的方式: 在父html中: 我可以传递对方法的引用,但是传递这样一个简单的表达式需要花费大量的时间和精力 我可以像上面提到的那样实现吗 角度模板语法中不允许使用箭头函数。我认为这是不可能的。我建议你使用一种公开的方法。因此,您可以在父组件中定义公共方法,然后在子组件上使用它 <componentB #cmpB> </componentB> <div (click)="cmpB.editFunction()

我需要将一个简单的表达式传递到我的角度分量中

这就是我想使用它的方式:

在父html中:

我可以传递对方法的引用,但是传递这样一个简单的表达式需要花费大量的时间和精力

我可以像上面提到的那样实现吗


角度模板语法中不允许使用箭头函数。

我认为这是不可能的。我建议你使用一种公开的方法。因此,您可以在父组件中定义公共方法,然后在子组件上使用它


<componentB #cmpB>
</componentB>
<div (click)="cmpB.editFunction()">
    This is where i want the function to be called
</div>
这就是我希望调用函数的地方

如果它只是另一个您想要访问其功能的组件,那么您可以执行上述操作。您试图做一件可能会破坏更改检测机制的坏事。相反,在父组件中,应该对数组项执行
expression
,并将结果传递给子组件。如果确实希望子组件能够访问外部表达式,则应将其移动到父组件提供的服务。检查允许将组件实例用作某些注入令牌的提供程序的
forwardRef

是否希望子组件从父组件访问方法?为什么要传递方法引用组件???@chiril.sarajiu否,我希望传递类似于arrow函数的表达式,以便在子组件中使用它。传递对父组件的方法的引用是一个简单的方法,但需要声明一个单独的方法。我想在child中使用匿名函数component@UnluckyAj我希望通过元素的属性使组件中的排序机制独立于元素的结构。像sort()函数和python中用作排序比较键的函数一样,代码中的eval函数是什么意思?如果字符串是在代码中创建的,而不是用户?为什么这会破坏更改检测?我可以将对父方法的引用传递给子组件,这是正确的。但是我不想在父组件的typescript代码中声明这个方法。只是一个小表达式,类似于Template中的arrow函数,因为调用父组件的方法时可能需要更新它。但是子组件中可能触发父组件方法的更改不会检查父组件。从技术上讲,可以将父对象的方法传递给子对象,然后从子对象执行。这正是框架设计的初衷,因为这是一件愚蠢的事情,让一切变得太复杂了。
@Input() expression: Function;
@Input() items: any[];
...
const results = this.items.map(item => this.expression(item)); // $context = item
<componentB #cmpB>
</componentB>
<div (click)="cmpB.editFunction()">
    This is where i want the function to be called
</div>