我正在将一些指令转换为组件,并试图消除额外的“包装”元素,因为replace: true
不再起作用。但是,旧的包装元素上有一个ng-class。
<some-directive>
<div ng-class="{classOne: someDirectiveCtrl.isClassOne}">
<p>...</p>
</div>
</some-directive>
在该示例中,使用replace: true
,div成为“包装”元素。
<div ng-class="{classOne: someDirectiveCtrl.isClassOne}">
<p>...</p>
</div>
所以......
有没有办法访问组件控制器中的信息,以便将类添加到组件的元素中?
即
<some-component ng-class="{classOne: someComponentCtrl.isClassOne}">
<p>...</p>
</some-component>
我宁愿不在父控制器中放置组件的函数,我想在HTML中列出这些类。
答案 0 :(得分:0)
您需要使用ng-controller
代替ng-class
。将控制器分配到ng-controller
,然后使用您的班级。
答案 1 :(得分:0)
组件始终使用隔离范围,这是外部世界无法访问的。你将不得不放弃ng-class提供的漂亮的声明性方法,而是使用组件控制器中的可用$元素。
答案 2 :(得分:0)
我们放弃并重新组织了html和css,因此它不是一个问题。 :(