Angular2 beta,一直使用接口undefined属性

时间:2016-02-12 11:41:24

标签: interface angular

export interface User {
    country_name: string,
    password:     string,
    email:        string,
}

// login.conponent
import {Component} from 'angular2/core';
import {User} from "../../interfaces/user";
import {OnInit} from "angular2/core";

@Component({
    selector:'login',
    templateUrl:'app/components/login/login.component.html',
})
export class LoginComponent implements OnInit {

    newUser: User;

    constructor() {}

    onSubmit(email = "",password = "") {
       this.newUser.email = email; // as example        
    }

    ngOnInit() {

    }
}

任何时候,当我尝试使用newUser时,它会让我感觉不自从,在我将要调用的任何一方都不会遇到任何问题。此外,如果试图看看ngInit它也不会发现。 我能错过什么?

2 个答案:

答案 0 :(得分:2)

未定义this.newUser的值。

您需要在分配任何属性值之前对其进行初始化,例如。类似的东西:

this.newUser = { country_name: null, password: null, email: null}

答案 1 :(得分:2)

您为用户定义了界面

export interface UserInterface {
    country_name: string,
    password: string,
    email: string,
}

但是如果你想使用它,你还需要创建User实例。

export class App {

    newUser: User;

    constructor() {
        this.newUser = new User();
        this.newUser.email = 'test@asd.com'
    }
}

为此,请确保User类实现UserInterface

export class User implements UserInterface {}