Angular 将两个动态变量合并为一个,以输出单个结果类型脚本
我尝试将两个变量合并成一个新变量 我的代码片段如下所示: 在TScomponent文件中Angular 将两个动态变量合并为一个,以输出单个结果类型脚本,angular,typescript,Angular,Typescript,我尝试将两个变量合并成一个新变量 我的代码片段如下所示: 在TScomponent文件中 this.setTextLang='_pt'; 在HTML中 {{el.menu_name+setTextLang}} 但这当然不起作用 当前输出:它连接输出-这不是我所期望的 USA_pt Nepal_pt 期望输出 编译器应将{{el.menu_name+setTextLang}}理解为{{el.menu_name_pt},并在*ngFor内给出el.menu_name_pt的值: 有人能为
this.setTextLang='_pt';
在HTML中
{{el.menu_name+setTextLang}}
但这当然不起作用
当前输出:它连接输出-这不是我所期望的
USA_pt
Nepal_pt
期望输出
编译器应将{{el.menu_name+setTextLang}}理解为{{el.menu_name_pt},并在*ngFor内给出el.menu_name_pt的值:
有人能为我提供其他解决方案吗?非常感谢!
如果我的问题不清楚,请告诉我好的,我想我现在明白你的问题了 @Simonare正确指出的括号内的财产访问权是自然解决方案。但是,由于角度模板语法的限制,这在这个用例中不起作用。在{{}模板语法中,不能在括号访问器中计算字符串变量 基本上,您不能执行{{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演示:请通过演示查看我的答案,并告诉我它是否解决了您的问题。