angular - Typescript .length returnerar undefined
Det här problemet gör mig galen ...
Jag har denna kod:
if (control.value==null||control.value == "" || control.value == " " || control.value.length != 5) {
// do something
}
Mitt problem: control.value.length returnerar alltid 'undefined'.
Jag försöker använda en strängvariabel på det här sättet men resultatet är detsamma.
var curVal: string = control.value;
if (curVal==null||curVal== "" || curVal == " " || curVal != 5) {
// do something
}
Var har jag fel?
Redigera: Precision: mitt control.value är inte null eller tomt, jag testar med värdet 59000
Den här koden :
console.log(control.value + ' - ' + control.value.length);
logga detta: 59000 - undefined
REDIGERA 2 : Tack, det är löst. Problemet var att mitt control.value var ett nummer och inte en sträng.
Svar #1
Jag tror att typen på din inmatning inte är en sträng utan ett tal.
@Component({
selector: 'my-app',
template: `
<div>
<input type="number" [ngFormControl]="ctrl">
</div>
`
})
export class AppComponent {
constructor() {
this.ctrl = new Control();
this.ctrl.valueChanges.subscribe((val) => {
console.log(val.length);
});
}
}
I det här fallet returnerar val.length undefined eftersom nummer inte har en length-attribut.
Se denna plunkr för mer information: https://plnkr.co/edit/5yp5ms9XY5Z3TEE2qYIh?p=preview.
Svar #2
Försök som dessa
String(control.value).length != 5
ELLER
control.value.toString().length != 5
