在角度应用程序中考虑radiobutton HTML元素,
<div class="radio">
<label>
<input type="radio" name="approvedeny" value="true" [(ngModel)]=_approvedOrDenied>
Approve
</label>
</div>
在我们的组件上,_approvedOrDenied
属性被声明为布尔值。
@Component({
export class ApprovalsComponent implements OnInit {
_approvedOrDenied: boolean;
但是,当单步执行客户端代码时,会将其设置为字符串。我的代码中没有可以执行此操作的强制转换,看起来像是自动执行此操作。
是否所有数据绑定属性都以角度形式返回为字符串?如果是这样,那么在typescript中声明类型_approvedOrDenied: boolean
是什么意思?
答案 0 :(得分:6)
不,它不总是一个字符串。顺便说一下,这是我第一次看到没有引号的标签!
当你使用像这样的输入进行组合时
<app-my-component firstVariable="hello world"></app-my-component>
然后它是一个字符串。在这种情况下,您甚至无法给出变量,输入将使用变量的名称作为值。
但如果你这样做
<app-my-component [firstVariable]="hello world"></app-my-component>
然后它不会工作。因为在这里,你应该给一个变量。要使其工作,请使用此
<app-my-component [firstVariable]="'Hello world'"></app-my-component>
现在,您正在提供类似于&#34;匿名变量&#34; :你使用引号,所以Angular理解它是一个字符串。
在您的情况下,您使用单选按钮。单选按钮是单选按钮组的一部分,每个按钮组都有字符串值。所以,即使你写的是真的,也不意味着它是一个布尔值!如果你想给它一个布尔值,你将不得不使用
[value]="true"
我希望我帮忙!
答案 1 :(得分:0)
从html中移除value="true"
,它应该可以正常工作