2017-02-25 17 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

工作...... –

相關問題