首页 > 解决方案 > 如何消除在 html 中将字符串属性括在引号中的需要——Nativescript Angular

问题描述

我有一个定义了属性的组件: type: string;

当我在 html 中传入一个类型时,如果我添加

[type]="number"

它失败了,但是如果我添加以下内容,它就可以工作。

[type]="'number'"

如何让属性系统知道传入的是字符串,这样我就不必将值括在引号中?

标签: angularnativescript

解决方案


这会失败,因为当您执行以下操作时,它正在查找名为 number 的组件中的变量。

[type]="number"


这是有效的,因为您通过包装将字符串传递给 [type]

[type]="'number'"

这意味着如果您真的想避免包装它,您可以定义。

public number = 'number';

或者

public type = 'number';
[type]="type"

但是您可能应该坚持将其包装成一个字符串,并阻止它查找已声明的变量(如果它是静态的)。


或者,您可以通过省略括号将文字值传递给输入。

<my-component type="number"></my-component>

“数字”被视为字符串文字并用于填充输入值。


推荐阅读