2017-02-25 49 views
0

这是我的模型类,我试图在我的组件中设置值,但我得到错误,“无法设置未定义的属性'年龄'”....不能设置未定义的属性“年龄”

frst.model.ts

import { Component } from '@angular/core'; 


    export interface mydata 
    { 
    name :string; 
    age:string; 
    data: string; 
    } 

FSRT-Component.ts

import { Component,Output,Input,OnInit, } from '@angular/core'; 
import { mydata } from './frst.model'; 
@Component({ 
    selector: 'my-Component', 
    template: ` 
    <div><h1>hello</h1></div> 
    `, 
}) 
export class MyComponent { 
@Input() nputmydata:mydata; 
@Output() outputmydata:mydata; 
PassData:mydata; 

constructor() 
{ 
    this.PassData.age='my name'; 
    this.PassData.data ='hello'; 
    this.PassData.name='rajeev'; 
    this._senddata(this.PassData); 
} 



private _senddata(PassData:mydata) 
{ 

console.log(PassData); 

} 
} 
+1

答案不明显吗?您指定'PassData'是'undefined',然后尽量选择它的一个特性。 – echonax

+0

即使在删除undefine之后...它不起作用 –

+0

什么是“删除undefined”是什么意思? –

回答

2

1)初始化您PassData字段为空对象或创建一个类与该类型。

PassData:any = {}; 

2)如果你想类型检查可以使接口参数可选像

export interface mydata 
    { 
    name?:string; 
    age?:string; 
    data?: string; 
    } 

PassData:mydata = {};

3)如果你想类型检查要严格要求空初始化对象字符串值,

PassData:mydata = {name:"", age: "", data:""};

+0

不workng ....类型“{}”不是分配给输入“MYDATA”。 属性“名称”中缺少类型“{}”。 –

+0

初始化PassData具有用于它的所有属性例如PassData = { 名称初始值: '我的名字'; 年龄: '年龄'; 数据: '';} 感谢 – snorkpete

+0

工作...... –