angular - 将两个动态变量合并为一个以输出单个结果 - 打字稿
问题描述
我尝试将两个变量合并或组合成一个新变量。
我的片段看起来像这样:
在 TS(组件)文件中
this.setTextLang='_pt';
在 HTML 中
<div *ngFor="let el of exlists">
<ion-label>
{{el.menu_name+(setTextLang) }}
</ion-label>
</div>
但这当然没有用。
目前的输出:(它连接输出 - 这是我不期待的)
USA_pt
Nepal_pt
Expecting output
编译器应该理解{{el.menu_name+(setTextLang) }}
为 {{el.menu_name_pt }}
& 给出el.menu_name_pt
inside的值*ngFor
:
有人对我有其他解决方案吗?非常感谢提前!如果我的问题不清楚,请告诉我
解决方案
好吧,我想我现在看到了你的问题。
正如@Simonare 正确指出的那样,括号内的属性访问将是自然的解决方案。但是,由于 Angular 模板语法的限制,这不适用于此用例。在 '{{}}' 模板语法中,您不能评估括号访问器内的字符串变量。
基本上,您不能这样做,{{el['menuName' + setTextLang]}}
因为无法在该范围内评估“setTextLang”。
因此,一种可能的解决方案是在您的模型中使用辅助方法为您进行访问:
getProperty(obj: any, property: string): string {
return obj[property + this.setTextLang];
}
然后在您的模板中:
<div *ngFor="let el of exlists">
<div>{{getProperty(el, 'menuName')}}</div>
</div>
这是一个 stackblitz 演示:https ://stackblitz.com/edit/angular-an2xiz
推荐阅读
- node.js - UnhandledPromiseRejectionWarning:错误:找不到模块“tailwindcss”heroku 错误
- wordpress - WordPress 抱怨数据库连接,而两个 docker-compose 文件相似
- java - 如何使用 string.format 将数组的元素对齐到列中
- php - 在 php 中从 xml 中检索密钥
- python - 删除 NANS 列 WISE 并加入原始数据框
- mysql - 通过子查询/连接过滤 SQL 中的行
- webrtc - 为什么 webrtc 中 p 帧的 num_references 为 1?
- arrays - 可以从字符串数组中以至少两种方式生成的最短字符串
- maven - “无法找到或加载主类”从执行“mvn install”中生成的 JAR
- html - 带有 h2 和按钮的 Flexbox