將所需的HTML添加到可重用組件中。給該組件一個選擇器。然後在任何需要它的HTML模板中使用該選擇器。
這裏是pm星,這是一個顯示星星而不是數值分級的組件。
import { Component, OnChanges, Input, EventEmitter, Output } from '@angular/core';
@Component({
selector: 'pm-star',
templateUrl: './star.component.html',
styleUrls: ['./star.component.css']
})
export class StarComponent implements OnChanges {
@Input() rating: number;
starWidth: number;
@Output() ratingClicked: EventEmitter<string> =
new EventEmitter<string>();
ngOnChanges(): void {
this.starWidth = this.rating * 86/5;
}
onClick(): void {
this.ratingClicked.emit(`The rating ${this.rating} was clicked!`);
}
}
所以在這個模板中定義的代碼可以被包括在需要的任何組件是:
<pm-star [rating]='product.starRating'
(ratingClicked)='onRatingClicked($event)'>
</pm-star>
謝謝,然後如果我想使用相同的預輸入在另一個地方,而是仰視並呈現A類型的項目,想要查看B類型的當前項目 - 我應該如何提供B類型的模板以進行綁定? – user776686
將它作爲@input參數傳入。查看構建可重用的文檔(在這裏也稱爲「子」或「嵌套」組件):https://angular.io/guide/component-interaction#component-interaction或者你可以看到我是如何在我的Pluralsight中構建Star Component當然這裏:https://app.pluralsight.com/library/courses/angular-2-getting-started-update – DeborahK