角度-什么';在多个组件中包含html的最佳方式是什么?

角度-什么';在多个组件中包含html的最佳方式是什么?,html,angular,include,ng-template,ng-content,Html,Angular,Include,Ng Template,Ng Content,我需要在项目的多个组件中加载。因此,我需要知道不重复代码的最佳方法是什么,而不是在组件中反复使用相同的HTML,但我不知道这样做是否正确。我创建了一个名为“加载图形”的组件,我将其绑定到各个组件的每个HTML文件中。我读过关于ngTemplateOutlet和ngContent,但老实说,在我的头脑中,将其用于这种情况是没有意义的(我也不明白……我是一个初学者)。那么,我该赌什么呢?谢谢。我认为加载组件不是一个坏主意。在应用程序根组件中使用加载组件。您可以使用loading.service和拦截

我需要在项目的多个组件中加载。因此,我需要知道不重复代码的最佳方法是什么,而不是在组件中反复使用相同的HTML,但我不知道这样做是否正确。我创建了一个名为“加载图形”的组件,我将其绑定到各个组件的每个HTML文件中。我读过关于
ngTemplateOutlet
ngContent
,但老实说,在我的头脑中,将其用于这种情况是没有意义的(我也不明白……我是一个初学者)。那么,我该赌什么呢?谢谢。

我认为加载组件不是一个坏主意。在应用程序根组件中使用加载组件。您可以使用loading.service和拦截器来显示或隐藏组件。您将为每个API调用自动获得一个加载指示器


示例:

基于您的问题,我认为使用NgTemplateOutlet创建可重用组件是避免在不同组件模板中重复HTML的最佳解决方案。它允许您根据主机组件传递参数,并使Angular应用程序更易于测试和开发,因为它为各种用例提供了易于修改的可重用组件,而无需修改单个组件本身

因为你是一个乞丐,我将演示使用NgTemplateOutlet的简单方法,不过稍后会深入讨论模板和邮票

您有一个可重用的搜索组件,希望在该组件上隐藏一个基于父组件的复选框。您的模板如下所示

我们使用@Input和property绑定将数据从父组件传递到子/搜索组件,因此我们根据父组件定义要隐藏的复选框

下面是搜索组件的代码示例

search.component.ts
======================
从“@angular/core”导入{Component,OnInit,Output,EventEmitter,Input};
@组成部分({
选择器:“应用程序搜索”,
templateUrl:'./app search.component.html',
样式URL:['./app search.component.css']
})
导出类AppSearchComponent实现OnInit{
accountName:string='';
@Output()accountSearchChange=new EventEmitter();//1.将数据从子组件传递到父组件的事件绑定->Int
@Input()searchMode:'account'|'holder'|'distribution'='account';//对可重用组件网使用NgTemplateOutlet
构造函数(){}
恩戈尼尼特(){
}
//2.将数据从子组件传递到父组件的事件绑定->调用发射
doSearchFilter(搜索文本:字符串){
log('Search Child:doSearchFilter->'+searchText);
this.accountSearchChange.emit(searchText);
}
clearFilters(){
log('帐户搜索:调用清除筛选器');
this.accountName='';
}
}
search.component.html
=====================
仅显示活动和挂起
仅查看缺少要求的支架
仅查看活动保持架