Angular 1.5组件元素的ng-class

时间:2016-09-12 19:41:38

标签: javascript angularjs

我正在将一些指令转换为组件,并试图消除额外的“包装”元素,因为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中列出这些类。

3 个答案:

答案 0 :(得分:0)

您需要使用ng-controller代替ng-class。将控制器分配到ng-controller,然后使用您的班级。

答案 1 :(得分:0)

组件始终使用隔离范围,这是外部世界无法访问的。你将不得不放弃ng-class提供的漂亮的声明性方法,而是使用组件控制器中的可用$元素。

答案 2 :(得分:0)

我们放弃并重新组织了html和css,因此它不是一个问题。 :(