問題点を示すためにプランナーを作成しました。コンポーネントが正しくレンダリングされない
https://plnkr.co/edit/a7F616WCoKbSGXzlYGsM?p=preview
私は別のコンポーネントで使用するコンポーネントを持って、私はそれを輸入し、ディレクティブにこれを追加しました:[]コンポーネントデコレータのと、それはレンダリングされません...
コンポーネントがline-list.componentである場合、そのセレクタはgb-line-listであり、このファイルapp/area-list.component.tsで使用しようとしています。
最初のページに領域の一覧が表示されます。ある領域をクリックすると、この領域の詳細を行の一覧で表示したいと考えています。それは、レンダリングされていない行のリストです...
エリア-detail.component.ts
import {Component, Input, OnInit} from 'angular2/core';
import {RouteParams} from 'angular2/router';
import {LineListComponent} from './line-list.component';
import {Area} from './area.interface';
import {LineService} from './lines.service';
@Component({
selector: '[gb-area-detail]',
directives: [LineListComponent],
template: `
<div *ngIf="area">
<h2>{{area.name}} area</h2>
<gb-line-list [areaId]="area.id"></gb-line-list>
</div>
`
})
export class AreaDetailComponent implements OnInit {
private area: Area;
constructor(
private _lineService: LineService,
private _routeParams: RouteParams){}
ngOnInit() {
let id = +this._routeParams.get('id');
this._lineService.getArea(id)
.then(area => this.area = area);
}
}
ラインlist.component.ts
import {Component, OnInit, Input} from 'angular2/core';
import {LineService} from './lines.service';
import {Line} from './line.interface';
@Component({
selector: '[gb-line-list]',
template: `
<ul>
<li *ngFor="#line of lines">{{line.name}}</li>
</ul>
`
})
export class LineListComponent implements OnInit {
@Input() areaId: number;
private lines: Line[];
constructor (
private _lineService: LineService) {}
getLines() {
this._lineService.getLines(this.areaId)
.then(lines => this.lines = lines);
}
ngOnInit() {
this.getLines();
}
}
の恩恵を受ける可能性があるか
<div gb-line-list [areaId]="area.id"></div>
の要素を変更:P –
はいを、私はそれを実現しました – JCorriveau
セレクタセレクタ: '[gb-line-list]'は属性セレクタですが、これを要素セレクタとして使用しています。ここでは、[plunker fixed](https://plnkr.co/edit/EbDwX0De64yUJ9pkAM8C?p=preview)で、area-detail.component.tsの行14を変更しました。 – Abdulrahman