正在检查元素是否在Angular2中动态标记了attr/class

正在检查元素是否在Angular2中动态标记了attr/class,angular,angular2-directives,Angular,Angular2 Directives,在Angular2中,开发人员是否有办法检查一个组件的对应元素是否标记了某个属性/类 假设我们有以下html: <outer-controller> <label label-directive class='dynamically-set-class' dynamically-set-attribute>just some label</label> </outer-controller> 只是一些标签 标签元素中标记的标签指令是一

Angular2
中,开发人员是否有办法检查一个组件的对应元素是否标记了某个属性/类

假设我们有以下html:

<outer-controller>
    <label label-directive class='dynamically-set-class' dynamically-set-attribute>just some label</label>
</outer-controller>

只是一些标签
标签元素中标记的
标签指令
是一个
Angular2
组件,两个
动态设置类
动态设置属性
外部控制器根据用户输入动态控制

每当
外部控制器
重置标签或属性的类时,它会触发一个由
标签指令
捕获的事件,因此
标签指令
应该根据运行时属性/类设置动态执行一些操作

但是,我在现有的官方
Angular2
doc

@Input()
文件中找不到任何示例。您可以执行以下操作:

@指令({
选择器:“[标签指令]”
})
导出类LabelDirective{
@输入('class.dynamicset class')\u dynamicallySetClass:boolean;
@输入('dynamicy-set-attribute')\u dynamicallySetAttribute:any;
恩戈尼尼特(){
log('class'+\u dynamicallySetClass);
log('attribute'+\u dynamicallySetAttribute);
}
ngOnChanges(更改){
..
}
}

还有一个问题,如果在运行时外部控制器更改了属性/类,
@Input()
方法是否会反映出来?假设out控制器删除了
类。动态设置类
,则
\u dynamicallySetClass
将变为
?是的,值将自动更新,并将执行从模板到字段的绑定,值更改时将调用
ngOnChanges()
。使用
类。某些类
只能检查是否设置了特定类(
布尔值
),但对于任意类,可以直接引用类属性(与属性类似)
@Input('class')classes:String
并检查包含哪些类。(不确定它是一个字符串,可能是一个数组)只要用代码尝试一下,
onChanges
方法就可以工作,但是两个
@Input()
都没有反映实际值,在
构造函数中和
onChanges
方法中,它们都是
未定义的,虽然我可以在
onChanges
方法中获得更改,但我只能监视
onChanges
方法中的更改吗?如果您想获得更改通知并在值更改时执行某些操作,可以使用
onChanges
。如果要在创建组件后读取值,请使用
ngOnInit(){…}
。对
\u dynamicallySetClass
/
\u dynamicallySetAttribute
使用getter/setter也可以在值更改时执行代码,但我对TS的了解不够,无法提供代码(我自己只使用Dart)。