angular - 如何将打字稿表达式传递给 Angular 2 组件
问题描述
我需要将一个简单的表达式传递给我的 Angular 组件。
这就是我想使用它的方式:
在父 html 中:
<my-component [expression]="$context.foo.bar" [items]="Items"></my-component>
在我的组件代码中:
@Input() expression: Function;
@Input() items: any[];
...
const results = this.items.map(item => this.expression(item)); // $context = item
我可以传递一个方法的引用,但是传递这么简单的表达式需要花费很多时间和精力。
我可以像上面提到的那样实施吗?
角度模板语法中不允许使用箭头函数。
解决方案
您正在尝试做一件坏事,这可能会破坏变更检测机制。相反,在父组件中,您应该expression
在数组项上执行并将结果传递给子组件。如果您确实希望子组件能够访问外部表达式,则应将其移至父组件提供的服务。检查是否forwardRef
允许将组件的实例用作某些注入令牌的提供者。
推荐阅读
- css - 增加链接/按钮周围的背景大小
- ios - 反应性
在 UITableViewCell - image - 在循环内显示图像时减少循环开销
- pandas-groupby - 如何在熊猫中按两列分组
- python - 将查询结果显示到视图中
- javascript - 我想减去 2 个数组并得到第三个数组,它由第一个数组的剩余元素组成
- java - 有谁知道 Selenium 和 Appium 是否接受 Java 版本 12?
- python - 从报纸文章中提取古吉拉特语(谷歌输入工具支持的语言)文本
- python - 使用 pandas 保存大型 Excel 文件时出错
- javascript - 如何在 paypal.paypent.create 中声明变量并在外部使用