Невозможно прочитать переменную свойства неопределенного значения (Typescript/HTML/Nativescript)

Я кодирую приложение Nativescript-Angular2-Typescript, но в настоящее время всегда сталкиваюсь с ошибкой TypeError.

Следующий код уже настроен для целей отладки.

логин.component.html

    <StackLayout>
    <Image src = "res://icon" stretch = "none" horizontalAlignment = "center"></Image>
    <TextField [(ngModel)] = "user.phonenr" hint = "mobile phone number" keyboardType = "phone" autocorrect = "false"></TextField>
    <TextField hint = "SMS code" secure = "true"></TextField>
    <Button text = "login" class = "submit-button" (tap) = "submitnr()"></Button>
    <Button text = "register" class = "btn"></Button>
    </StackLayout>

логин.component.ts

    import { Component } from "@angular/core";
    import { Button } from "tns-core-modules/ui/button";
    import { User } from '../../shared/user/user';
    import { UserService } from "../../shared/user/user.service";


    @Component({
    selector: "Login",
    providers: [UserService],
    moduleId: module.id,
    templateUrl: "./login.component.html",
    styleUrls: ['./login-common.css']
    })

    export class LoginComponent {

    //Variables
    public user: User;       

    constructor(private userService: UserService) {
    this.user = new User();
    this.user.phonenr = 2222555;
    }

    public submitnr() {
    if (this.user.phonenr === undefined)
    {
    console.info("fucking undefined why ??????");
    console.info(this.user.phonenr);
    }
    else
    {
    console.info("Its defined so why getting error!!!!!!????!??!!?");
    console.info(this.user.phonenr);
    }
    }
    }

пользователь.тс:

    export class User {
    phonenr: number | undefined;
    }

user.service.ts:

    import { Injectable } from '@angular/core';
    import { HttpClient, HttpHeaders } from '@angular/common/http';
    import { User } from './user';


    @Injectable()
    export class UserService {

    constructor(private http: HttpClient) { }

    public register(user: User) {
    console.info(user.phonenr);
    }
    }

Часть «user.phonenr» в «login.component.html» всегда выдает ошибку: TypeError: Невозможно прочитать свойство 'phonenr' неопределенного

Просто упомянем, что инструкция If для submitnr() запускается в определенную часть.

Надеюсь, я предоставил весь необходимый код. Если нет, дайте мне знать.

0
0
421
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Ваш код выглядит правильно, я могу только предложить вам добавить *ngIf = "user" на вход, даже если это не решает проблему напрямую, это может помочь

Вау, это сработало. Не знаю, почему, и был бы признателен за объяснение. Но это работает. Большое Вам спасибо.

Tobster 07.02.2019 15:33

А... если заменить класс на интерфейс?

При замене интерфейса классом он работает. Поскольку я новичок в программировании, я не уверен, что это лучшее решение для моей проблемы.

Tobster 07.02.2019 15:27

Красиво, идеально :)

Jordi Serra 07.02.2019 15:44

Я рекомендовал использовать интерфейсы для передачи данных и использовать классы для выполнения логики/кода.

Jordi Serra 07.02.2019 15:46

Я выбрал другое решение от @Nguyen Phong Thien. Тем не менее, спасибо за вашу помощь и время.

Tobster 07.02.2019 15:51

Другие вопросы по теме