2016-05-05 9 views
2

にトリガされません私は/carで発見することができますCarComponentと呼ばれるコンポーネントを持っています。をngOnInitページロード

http://localhost:4200/carに移動すると、正しいルートに移動し、CarComponentテンプレートが表示されますが、コンポーネントのngOnInit機能は呼び出されません。ここに私のコンポーネントのコードは次のとおりです。それは場合に役立ちます。ここ

// src/app/+car/car.component.ts 

import { Component, OnInit } from '@angular/core'; 
import { Http, HTTP_PROVIDERS } from '@angular/http'; 

@Component({ 
    moduleId: module.id, 
    selector: 'app-car', 
    templateUrl: 'car.component.html', 
    styleUrls: ['car.component.css'] 
}) 

export class CarComponent implements OnInit { 
    cars: any; 

    constructor(public http: Http) { 
    } 

    ngOnInit() { 
    console.log('init'); 
    this.http.get('http://localhost:3000/api/cars.json') 
     .subscribe(response => this.cars = response.json()); 
    } 

} 

は、カップル、他のファイルです:

// src/app/dream-cars.component.ts 

import { Component } from '@angular/core'; 
import { CarComponent } from './+car'; 
import { Routes , ROUTER_DIRECTIVES} from '@angular/router'; 

@Component({ 
    moduleId: module.id, 
    selector: 'dream-cars-app', 
    templateUrl: 'dream-cars.component.html', 
    styleUrls: ['dream-cars.component.css'], 
    directives: [ROUTER_DIRECTIVES] 
}) 
@Routes([ 
    {path: '/car', component: CarComponent} 
]) 
export class DreamCarsAppComponent { 
    title = 'Dream Cars'; 
} 

- 私はngOnInit(または任意の関数を得るのですか

<!-- src/app/dream-cars.component.html --> 

<h1>{{title}}</h1> 

<nav> 
    <ul> 
    <li><a [routerLink]="['/']">Home</a></li> 
    <li><a [routerLink]="['/car']">Cars</a></li> 
    </ul> 
</nav> 

<router-outlet></router-outlet> 

どのように、私は「ドン私はページを読み込むときに呼び出される?私は/carに私のリンクをクリックしたときにところで

が、それはまた、呼び出されません。リンクをクリックすると、正しいルートに移動しますが、ngOnInitは呼び出されません。私は二回リンクをクリックした場合のみ必要に応じて、それが動作しません。

ここでも、ngOnInitは私にとって重要なことではありません。私は、ページが読み込まれたときにコンポーネントにAPI呼び出しをさせたいだけです。

+0

どのブラウザとどのような角度バージョンがありますか? GünterZöchbauerChromeと角度2.0.0-rc.1 @ –

+0

。 GünterZö[email protected] –

+1

は、私はあなたが正しいことを推測します。幸い私は別のSOの答えで解決策を見つけました。 –

答えて

3

これは解決策であることが判明:Angular2 expressions not rendering

私は、サーバーを再起動し、それが働いていたこの

<script src="vendor/es6-shim/es6-shim.js"></script> 
<script src="vendor/systemjs/dist/system-polyfills.js"></script> 
<script src="vendor/reflect-metadata/Reflect.js"></script> 
<script src="vendor/zone.js/dist/zone.js"></script> 
<script src="vendor/systemjs/dist/system.src.js"></script> 

にこの

<script src="vendor/es6-shim/es6-shim.js"></script> 
<script src="vendor/reflect-metadata/Reflect.js"></script> 
<script src="vendor/zone.js/dist/zone.js"></script> 
<script src="vendor/systemjs/dist/system-polyfills.js"></script> 
<script src="vendor/systemjs/dist/system.src.js"></script> 

から私のスクリプトを含める順序を変更しなければなりませんでした。

関連する問題