将所需的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