#angular #nativescript #angular2-nativescript
#angular #nativescript #angular2-nativescript
Вопрос:
В моем NativeScript с проектом Angular я просто пытаюсь просто использовать объект для сбора информации о пользователе. Всякий раз, когда я делаю это, я получаю сообщение об ошибке ERROR TypeError: undefined is not an object (evaluating '_co.user.username')
. Я попытался воссоздать это в NativeScript Playground, но он не распознал мою модель.
Итак, вот моя модель:
export interface User {
id: number,
username: string,
password: string,
firstName: string,
lastName: string,
permissions: string,
year: number,
basketball: boolean,
dodgeball: boolean,
football: boolean,
soccer: boolean,
softball: boolean,
volleyball: boolean,
teamID: number
}
Вот мой компонент .ts:
export class SignUpComponent implements OnInit {
public user: User;
constructor(private router: Router) { }
ngOnInit(): void { }
nextSignUp(): void {
alert(this.user.username);
this.router.navigate(['/signUpInfo']);
}
}
и затем вот мой HTML-файл, в котором я использую свою ngModel:
<ActionBar title="Sign Up" class="action-bar"></ActionBar>
<GridLayout class="pageBackground">
<ScrollView>
<StackLayout class="main-container">
<TextField style="margin-top: 3%;" class="form-control" hint=" Email Address" keyboardType="email" returnKeyType="done" autocorrect="false"
autocapitalizationType="none" [(ngModel)]="user.username"></TextField>
<Button class="btn btn-primary btn-rounded-sm" style="width: 90%; height: 7%; padding: 0px; margin-top: 77%; background-color: black; color: white; vertical-align: bottom;"
text="Next" (tap)=nextSignUp()></Button>
</StackLayout>
</ScrollView>
</GridLayout>
Я не могу понять, почему я получаю эту ошибку или как ее исправить. Любая помощь была бы высоко оценена.
Комментарии:
1. Интерфейс предоставляет тип только пользовательской переменной. В этом случае может сработать инициализация user var с пустым obj или с пустым полем username.
2. @Ajay это тоже была моя первая мысль, но затем она просто изменила ошибку на
evaluating this.user.username = ""
3. ngOnInit() { this.user = { ‘username’: ‘ ‘ ‘ }; } Это должно сработать.
4. @Ajay это то, что я пробовал, но я, наконец, нашел это. по какой-то причине файл .js, который создается всякий раз, когда вы создаете файл .ts для nativescript в VS, не обновлялся, поэтому мне просто пришлось удалить его и обновить. Спасибо!
5. @rcarcia02 Я получаю ту же ошибку. Как удалить файл .js и обновить его? Я не знаю, где ее найти в VS code.