【发布时间】:2018-10-08 14:42:05
【问题描述】:
我有一个用于不同组件的通用模板,但有一些按钮。因此,我创建了一个通用组件并使用 ng-template 更改此按钮:
<component-common
[buttonTemplate]="buttonTemplate">
</component-common>
<ng-template #buttonTemplate let-element="element" let-method>
<button (click)="method">
element.name
</button>
</ng-template>
在component-common.component.ts中:
export class ComponentCommonComponent {
@Input() buttonTemplate: TemplateRef<any>;
constructor() { }
test() {
console.log("test called");
}
}
在 html 中:
<ng-template
*ngTemplateOutlet="buttonTemplate;context: {method: test(), element:element}">
</ng-template>
我发现的问题是“测试”一直被调用,我只想在点击时调用它,我错过了什么?
【问题讨论】:
标签: angular angular5 ng-template