要将多个类分配给主机,您可以执行以下操作:
@HostBinding('class') classAttribute: string = 'classA classB';
对于您的情况,您可以执行以下操作:
@HostBinding('class') classAttribute: string;
// Example function that updates the classAttribute property
// You might handle it differently in your application
updateClassAttribute(color: string, isCompact: boolean) {
const classes: string[] = [`${color}-ui`];
if (isCompact) classes.push('compact-ui');
this.classAttribute = classes.join(' ');
}
注意上面的函数逻辑可以写成一行,像这样:
this.classAttribute = [ ...isCompact ? ['compact-ui'] : [], `${color}-ui` ].join(' ');
此外,如果您在应用程序的多个位置需要它们,您可能会考虑@ngrx/store
为这些值(isCompact
, )使用 Redux 存储(例如)。color