有没有办法申报/使用"模板"角度为2/4的片段? 假设我有2个组件,其中有一些重复的部分,我不想让这个部分成为@Component。反正有没有避免它? 假设以下片段:
<div class="col-md-6 no-padding">
<label for="to_date">To</label>
<datetime id="to_date" [(ngModel)]="to_date" [timepicker]="false"
(ngModelChange)="onToDateChanged($event)"
[datepicker]="to_options">
</datetime>
</div>
我不想在每个页面上声明这个div我需要一个日期时间选择器,而且我也不想让它成为@Component。 任何建议/解决方法/帮助?
答案 0 :(得分:1)
执行此操作的一种方法是在父级中定义模板,并使用ngTemplateOutlet
将其传递给您的孩子。
https://angular.io/api/common/NgTemplateOutlet
尝试查看此文章以获取更多信息:
http://blog.angular-university.io/angular-ng-template-ng-container-ngtemplateoutlet/
一个简单的潜在解决方案,接近你想要的:
您可以在父组件中定义模板:
<div #myTemplate>Hello</div>
然后使用ViewChild获取对它的引用:
@ViewChild('myTemplate') templateForChild;
然后您可以将它传递给您的孩子:
<your-component [template]='templateForChild'></your-component>
然后在组件中接受它作为输入:
public class YourComponent {
@Input() template: TemplateRef;
....
}