[英]How to pass dynamic variable value within an object string in Angular View
I want to assign variable's value from Component to object string within Angular view.我想将 Component 中的变量值分配给 Angular 视图中的 object 字符串。
This is snippet from typescript file这是 typescript 文件的片段
@Input() someVariable: string = '';
let someValueFromTypeScript: string = '';
ngOnChanges(): void {
this.someValueFromTypeScript = (this.someVariable) ? this.someVariable : 'default_value';
}
This is snippet from corresponding template这是来自相应模板的片段
<div data-dl='{"prop1":"val1", "prop2":"val2", "prop3":"someValueFromTypeScript"}'>
...
</div>
I tried using string interpolation but it didn't worked.我尝试使用字符串插值,但没有奏效。 One constraint is that value to
data-dl
should be string only, so I cannot do something like:一个限制是
data-dl
的值应该只是字符串,所以我不能做类似的事情:
<div attr.data-dl="JSON.stringify value of property">
...
</div>
Define a function into component.ts:在component.ts中定义一个function:
getSomeValueFromTypeScript(){
return this.someValueFromTypeScript;
}
And then call it from html component into your object:然后将其从 html 组件调用到您的 object 中:
<div data-dl='{"prop1":"val1", "prop2":"val2", "prop3": getSomeValueFromTypeScript() }'>
...
</div>
Since you insist on data-dl
being a string, you could use the interpolation like following由于您坚持
data-dl
是一个字符串,因此您可以使用如下插值
<div attr.data-dl="{prop1:val1, prop2:val2, prop3:{{someValueFromTypeScript}}}">
...
</div>
On the other hand if you wish to have an object for data-dl
attribute, you could try the property binding syntax另一方面,如果您希望为
data-dl
属性使用 object,您可以尝试属性绑定语法
<div [attr.data-dl]="{'prop1':'val1', 'prop2':'val2', 'prop3':someValueFromTypeScript}">
...
</div>
Note: The type of quotation marks (single or double) doesn't have any bearing on the values.注意:引号的类型(单引号或双引号)对值没有任何影响。 The only condition is it should be used interchangeably for member variables and string literals.
唯一的条件是它应该可互换地用于成员变量和字符串文字。
<div [attr.data-dl]="{'prop1':'val1', 'prop2':'val2', 'prop3':someValueFromTypeScript}">
is similar to类似于
<div [attr.data-dl]='{"prop1":"val1", "prop2":"val2", "prop3":someValueFromTypeScript}'>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.