2017-11-14 8 views
0

角度4を使用するサイトで作業していました。プロダクションモードになるまでうまくいきました。生産モードでは、ng buildは正常に動作するようですが、ng build --prodを実行するとエラーになります。このプロダクトモードに入るときに 'address'プロパティがタイプ{}に存在しません。角度4

error image

のように私の見解では、この

<ul class="personal-info list-inline clearfix mb-5"> 
    <li><strong>Full Name :</strong>{{details.name}}</li> 
    <li><strong>Birthday :</strong>{{details.birth_day}}</li> 
    <li><strong>Address :</strong>{{details.address}}</li> 
    <li><strong>Phone :</strong>{{details.phone}}</li> 
    <li><strong>Email :</strong> <a href="">{{details.email}}</a></li> 
    <li><strong>Job :</strong>{{details.job}}</li> 
    <li><strong>Skype :</strong> {{details.skype}}</li> 
</ul> 

のようなものであると私のコンポーネントは、私は、エラーを探し、この

export class AppComponent implements OnInit { 


    title = 'app'; 
    slider = {}; 
    specialities = {}; 
    works = {}; 
    details = {}; 
    image; 
    html; 
    image1; 
    private url = "http://localhost/portfolio/api/home/data" 

    constructor(private http: Http) { 
    } 
    ngOnInit() { 
    this.getData(); 
    } 

    getData() { 
    return this.http.get(this.url) 
     .map((res: Response) => res.json()).subscribe(res => { 
     this.slider = res.slider; 
     this.specialities = res.specialities; 
     this.works = res.works 
     this.details = res.details; 
     console.log(res); 
     }); 
    } 


} 

のようなものですが、私は解決策を見つける傾けます。この問題を解決するために何ができるか。どんな助けもありがとう。ありがとう

あなたはクラス詳細を作成し、コンポーネントに従うなどの詳細を宣言する必要があり

答えて

1
活字体には、名前、birth_dayなどを探している

プロパティはObjectクラスにありますが、Objectクラスには存在しません。オブジェクトの型を任意に宣言する必要があり、Typescriptはプロパティ名について不平を言うことはありません。

slider: any = {}; 
 
specialities: any = {}; 
 
works: any = {}; 
 
details: any = {};

+0

ありがとうございました。 –

2

export class Detail { 
    name : string; 
    ............. 
    etc 
} 

とコンポーネントの内部

details:Detail ; 
+0

ありがとう:このように。しかし、以下の答えが働いたので、私はこれを試していませんでした。 –

+0

はい、以下の答えもうまくいきます。しかしベストプラクティスは、提案されたクラスを定義することです – Sajeetharan

+0

今から私はこれに従います –

関連する問題