Angular 提供程序、变更检测、封装、角组件定义中的主机
我看到一些包,它们提供提供者,封装,变更检测,主机,如下代码。它们是什么意思,以及它在组件类中相对于以下代码的行为Angular 提供程序、变更检测、封装、角组件定义中的主机,angular,typescript,npm,Angular,Typescript,Npm,我看到一些包,它们提供提供者,封装,变更检测,主机,如下代码。它们是什么意思,以及它在组件类中相对于以下代码的行为 @Component({ selector: 'ng-select', templateUrl: './ng-select.component.html', styleUrls: ['./ng-select.component.scss'], providers: [{ provide: NG_VALUE_ACCESSOR,
@Component({
selector: 'ng-select',
templateUrl: './ng-select.component.html',
styleUrls: ['./ng-select.component.scss'],
providers: [{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => NgSelectComponent),
multi: true
}],
encapsulation: ViewEncapsulation.None,
changeDetection: ChangeDetectionStrategy.OnPush,
host: {
'role': 'listbox',
'class': 'ng-select',
'[class.ng-select-single]': '!multiple',
}
})
它意味着跟随事物
- 封装如果您使用viewEncapsation.None,这意味着您将编写的样式属性或样式URL:(css文件)将是全局范围,因此如果您有 .危险{ 颜色:红色 } 也可以在构件外部使用该样式
- 主机意味着您正在主机元素本身上添加属性,例如,在本例中,它将添加下一个属性 ng选择角色class=“ng选择”\
- 提供者意味着您在那里注入的服务将仅在组件级别可用,如果您有两个不同的ng select,则它们都将具有该类的不同实例
- 更改检测您可以配置更改检测在此组件上的工作方式,默认情况下,在每个更改检测周期中,它也将运行此组件,OnPush策略意味着仅当任何输入属性引用已更改时,它才会在此组件上运行更改检测