首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在angular 8中,在指令的'host‘属性中动态设置的类不会应用于父模板

在Angular 8中,指令的'host'属性用于定义指令所应用的宿主元素,并可以在宿主元素上动态设置类。然而,动态设置的类不会自动应用于父模板。

在Angular中,指令的'host'属性是一个对象,用于指定宿主元素的属性、事件和样式。可以使用动态绑定语法来设置类,例如:

代码语言:txt
复制
@Directive({
  selector: '[myDirective]'
})
export class MyDirective {
  @HostBinding('class.myClass') myClass = true;
}

在上面的例子中,'myDirective'指令会将类名为'myClass'的类动态应用于宿主元素。然而,这个类不会自动应用于父模板。

要在父模板中应用动态设置的类,可以使用Angular的属性绑定机制。首先,在指令中定义一个属性,用于接收父组件传递的类名:

代码语言:txt
复制
@Directive({
  selector: '[myDirective]'
})
export class MyDirective {
  @Input() myClass: string;
}

然后,在父组件的模板中,使用属性绑定将类名传递给指令:

代码语言:txt
复制
<div myDirective [myClass]="'myClass'"></div>

最后,在指令中使用动态绑定语法将接收到的类名应用于宿主元素:

代码语言:txt
复制
@Directive({
  selector: '[myDirective]'
})
export class MyDirective {
  @Input() myClass: string;

  @HostBinding('class') get hostClasses() {
    return this.myClass;
  }
}

通过上述步骤,动态设置的类将应用于父模板中的宿主元素。

关于Angular 8的更多信息和相关产品,您可以参考腾讯云的官方文档和产品介绍页面:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券