Angular 2 - 在模板中的变量内显示变量

Posted

技术标签:

【中文标题】Angular 2 - 在模板中的变量内显示变量【英文标题】:Angular 2 - Display variable inside a variable in a template 【发布时间】:2017-06-11 18:18:15 【问题描述】:

我是 Angular 2 的新手,我想在我的模板中显示一个变量中的字符串,该变量必须包含在另一个变量中。我将向您展示一个简化的示例,说明我的问题是什么以及我想要实现的目标:


questionnaire.component.ts

/* Starts being "", populating an input text will modify this */
name = "Albert";

/* This variable comes from calling an API, here I just put it as created to simplify */
question.title = "Hello name, how old are you?";

questionnaire.template.html

<p>question.title</p>

我得到的结果是:

你好name,你几岁?

我想要的结果是:

你好,阿尔伯特,你几岁了?

我试图转义存储在我的数据库中的字符串中的“ ”,使用 ASCII 字符而不是花括号,将它放在 [innerhtml] 内...但是结果总是一样的。

你知道我该如何解决这个问题吗?

非常感谢!

【问题讨论】:

【参考方案1】:

仅适用于 Angular 组件模板,不适用于任意字符串,也不适用于动态添加到 DOM 的 HTML。

改成

 question.title = `Hello $this.name, how old are you?`;

使用 TypeScript 字符串插值。

【讨论】:

谢谢!它就像一个魅力。如果“title”字段是Hello $this.name...,我想如果我直接从DB调用API获取对象“question”,它也会起作用,不是吗? 抱歉,我不知道这到底是什么意思。这取决于您将代码放在哪里以及是否可以从执行代码的位置获得 this.name,但原则上这在 TS 代码中的任何地方都有效。 好的,别担心,我会自己尝试一下,看看它是否适用于我的特殊情况。再次非常感谢! 感谢这个解决方案,最初对我不起作用,但那是因为我使用的是单引号而不是反引号!【参考方案2】:

在 angular2 中你必须使用 this 关键字

例如,$this.name

【讨论】:

以上是关于Angular 2 - 在模板中的变量内显示变量的主要内容,如果未能解决你的问题,请参考以下文章

*ngFor 如何与 Angular 2 中的模板变量一起工作?

从Angular2控制器中的模板访问局部变量

如何在 Django 2.1 中的模板内的 for 循环内设置变量?

ngFor(Angular 9)中的动态模板引用变量

Angular - JSX 和模板文字中的转义变量以将其用作参数

如何在 Angular 中为 ngfor 为 html 模板键入变量?