当我运行我的代码时,price.value
说我不能那样做,但以前有人这样做过。
我犯了这样的错误。
“字符串”类型的参数不能分配给“数字”类型的参数。
<div class="form-group">
<label for="price">price</label>
<input #price type="text" class="form-control" name="price" />
</div>
<div class="form-group">
<div class="custom-control custom-checkbox">
<input
#isactive
type="checkbox"
class="custom-control-input"
id="isActive"
/>
<label for="" class="custom-control-label" for="isActive"></label>
</div>
我该怎么做才能获得输入表单中的值。我的按钮代码定义如下。
<button
class="btn btn-primary"
(click)="
addProduct(name.value, price.value, isactive.checked);
name.value = '';
price.value = '';
isactive.checked = false
"
>
我收到这样的错误并使用版本 angular 11。据我所知,它正在使用版本 9。
<块引用>'string' 类型的参数不可分配给类型参数 '号码'。
addProduct(name.value, **price.value**, isactive.checked);*>
我的 addProduct 函数在这里
addProduct(name: string, price: number, isactive: boolean) {
console.log(name);
console.log(price);
console.log(isactive);
}
答案 0 :(得分:1)
输入字段的值默认是一个字符串。所以你必须先把它转换成你的函数
addProduct(name.value, parseInt(price.value), isactive.checked)
答案 1 :(得分:0)
将参数 price
的类型更改为字符串。然后在函数内部使用 parseInt
或 Number
将字符串转换为数字。
addProduct(name: string, price: string, isactive: boolean) {
const pr = parseInt(price,10);
if(!isNaN(pr){
// rest of code her
}
}
如果您像这样调用函数 addProduct(name.value, parseInt(price.value), isactive.checked)
并且如果 parseInt(price.value)
不是数字,则该函数将抛出错误,因为 addProduct
期望 price.value
是数字.
例如,如果 price.value 是类似 'testString' 的字符串,那么 parseInt(testString)
将是 NaN