我看到一些软件包,它们在以下软件包中提供了提供者,封装, changeDetections ,主机码。关于以下代码,它们的含义是什么以及它在组件类中的行为。
@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',
}
})
答案 0 :(得分:1)
这意味着跟随事物
封装(如果使用ViewEncapsulation.None),则意味着您将编写样式属性或styleUrl:(css文件)的样式将是全局范围,因此如果您拥有
。危险{ 红色 } 您也可以在组件外部使用该样式
主机意味着您要在主机元素本身上添加属性,例如,在这种情况下,它将添加下一个属性
ng-select角色类=“ ng-select” \
提供者意味着您在此处注入的服务将仅在组件级别可用,并且如果您具有两个不同的ng-select,则它们都将具有该类的不同实例
变更检测,您可以配置变更检测在此组件上的工作方式,默认情况下,它将在每个变更检测周期上同时运行此组件,OnPush策略意味着只有在以下情况下,它将在此组件上进行变更检测:输入属性引用已更改