angular - ng6 : Dynamically form Variable names in html

标签 angular typescript

组件

在我的组件中,我有这样的变量。

i18 = 'server';
i19 = 'database';
i21 = 'share-alt';
i20 = 'battery-full';
i22 = 'soundcloud';

html

这将显示组件中的 var i18

<fa [name]="[i18]"></fa>

这将显示组件中的 var i18

<fa [name]="i18"></fa>

这会解析为“i18”而不是“服务器”

<fa [name]="'i'+category.id"></fa>

问题

在最后一个片段中,我尝试使用 'i'+category.id 从组件获取 i18 的值,其中 category.id 是“18”,它会打印“i18”模板。如何编写 HTML,使 'i'+category.id 的值为“server”

最佳答案

您无法在模板中动态创建变量名称。您可以将值存储在 Map 结构中:

public names = new Map<number,string>([
  [18, "server"],
  [19, "database"],
  [20, "battery-full"],
  [21, "share-alt"],
  [22, "soundcloud"],
]);

并使用模板中的get方法检索它们:

<fa [name]="names.get(category.id)"></fa>

参见this stackblitz进行演示。

关于angular - ng6 : Dynamically form Variable names in html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51249884/

相关文章:

javascript - angular 2 如何从订阅返回数据

angular - 在 RxJS 6 和 Angular 6 出现错误后如何保持可观察性

Angular Material Input 没有带有深色主题的白色文本

angular - 如果主模板上没有 'routerLink',“路由器 socket ”将无法工作

javascript - 如何将变量从 Electron 传递到后面的 Angular

typescript - Typescript 中的通配符返回类型,其中返回实现接口(interface)的对象

html - 如何在Angular 6中将maxlength设置为输入类型编号?

angular - 在 ng-container 中访问子组件变量

javascript - 自定义重试功能

javascript - {{ }} 内的字符串作为插值代码