angular - 强制角度尊重 json 中的接口类型
问题描述
举个例子:
模型.ts
export interface Item{
name: string;
age: string
}
组件.ts
form: FormGroup
constructor(private fb: FormBuilder){}
onInit(){
this.form = fb.group({
name: [''],
age: ['']
})
}
exampleFn(){
const signature: Item = Object.assign({},this.form.value);
console.log(typeof(signature.age)); // <=== HERE
// output number
}
html
<form [formGroup]="form">
<input formControlName="name" type="text"/>
<input formControlName="age" type="number"/>
</form>
为什么值不是字符串?在模型中是用字符串定义的,虽然输入类型是数字,因为我想友好地显示它,但我需要一个字符串,而且我不想单独转换(在一个模型中输入了一堆 itens 的场景中思考) .
谢谢
堆栈闪电战示例
解决方案
另一个答案是 100% 正确,您想要做的事情应该在其他地方的映射函数中完成,但您仍然可以使用仅允许数字的指令来完成。
使用链接中的指令,html 将如下所示:
<form *ngIf="form" [formGroup]="form">
<input formControlName="name" type="text"/>
<input formControlName="age" numbersOnly/>
</form>
我不是那个写指令的人,我仍然认为你应该找到另一种方法。
推荐阅读
- sql - 如何通过固定一些变量来计算中位数?
- javascript - 尝试在 Windows CLI 上启动 gulp 时出错
- jenkins - 如何将 .NetCore dotnet(不是 MSBuid 插件)安装到 Jenkins
- eclipse - 安装 Eclipse 时出现“NLS 丢失消息”错误
- reactjs - 在 TextInput 中忽略子项的 onPress
- excel - Convert stock transactions into daily holdings in Excel
- javascript - using uibModal in angularJS v1.48 applcation
- dart - Dart - Hide method from parent class / call private method from parent class
- javascript - handle find property in array if undefined
- javascript - Uncaught TypeError: downloadButton is null