如何将表达式作为Angular2中的输入传递给组件?

马林相对

我需要将表达式传递给组件,该表达式将在组件的模板内进行评估。

例如,组件:

@Component({
  selector: 'app-my-component',
  ...
})
export class MyComponent {
  @Input items: MyClass;
  @Input expression: String;
  ...
}

与组件的模板:

<div *ngFor="let item of items">
  {{expression}}
</div>

MyComponent的用法:

<app-my-component [items]="listOfItems" [expression]="'[item.id] item.name'">
</app-my-component>

由于会有多个输入,因此我想避免使用TemplateRef。

yurzui

也许以下选项之一可以帮助您:

1)使用ngForTemplateNgFor指令的输入属性:

零件

@Component({
  selector: 'app-my-component',
  template: `
  <div *ngFor="let item of items template: itemTemplate"></div>`
})
export class MyComponent {
  @Input() items: any;
  @ContentChild(TemplateRef) itemTemplate: TemplateRef<any>;
}

父母

<app-my-component [items]="listOfItems">
  <ng-template let-item>[{{item.id}}] {{item.name}}</ng-template>
</app-my-component>

柱塞

2)使用NgTemplateOutlet指令

零件

@Component({
  selector: 'app-my-component',
  template: `
  <div *ngFor="let item of items">
    <ng-template [ngTemplateOutlet]="itemTemplate" [ngTemplateOutletContext]="{ $implicit: item }"></ng-template>
  </div>`
})
export class MyComponent {
  @Input() items: any;
  @ContentChild(TemplateRef) itemTemplate: TemplateRef<any>;
}

父级保持不变:

<app-my-component [items]="listOfItems">
  <ng-template let-item>[{{item.id}}] {{item.name}}</ng-template>
</app-my-component>

柱塞

这样<ng-template let-item>...</ng-template>您就可以使用所需的表达式

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将字符串值传递给angular2中的组件

如何将Observable属性传递给Angular2中的组件?

如何将正则表达式作为参数传递给Perl 6中的子例程

我如何将Lambda表达式传递给C ++模板作为参数

MapStruct:如何将输入对象传递给表达式?

如何将变量传递给Lambda表达式

如何将表达式作为参数传递?

如何将函数或表达式作为参数传递?

如何将lambda表达式放入变量中,然后将其传递给as / r

如何将JSON中的正则表达式传递给API?

dplyr / tidyevaluation:如何将mutate中的表达式作为字符串传递?

将路径参数传递给子组件作为Angular 2中的输入

在Angular 2中单击时如何将输入值传递给另一个组件?

如何将Twig表达式作为参数传递给模板,然后在模板的上下文中执行它?

如何将 Angular 2 表单输入传递给打字稿组件?

在Dart Angular中,如何将函数传递给组件

在pydatatable中扩展数据框时如何将f表达式列传递给函数?

如何将道具传递给作为值传递的组件

如何检查Angular2表达式中的isNaN?

如何将变量从@Input传递到Angular2组件中的服务>

如何将表示表达式的字符串传递给dplyr 0.7动词?

表达式函数和动作如何将值形式函数传递给动作

如何将参数传递给在MVEL表达式内编写的函数?

如何将“带有副作用的表达式”传递给getc?

如何将参数传递给Python用户定义函数内部的正则表达式?

如何将变量传递给使用 `sh -c` 运行的 shell 表达式?

如何将Expr(表达式)数组传递给Haxe Macro?

如何将AngularJS表达式传递给控制器

如何将运行时参数传递给EF Core谓词表达式