【问题标题】:ng-class on Angular 1.5 component elementAngular 1.5 组件元素上的 ng-class
【发布时间】:2017-01-20 07:46:22
【问题描述】:

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

【问题讨论】:

标签: javascript angularjs


【解决方案1】:

您需要使用ng-controller 而不是ng-class。将控制器分配给ng-controller,然后使用您的类。

【讨论】:

  • 这会创建组件控制器的额外实例吗?
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    我们放弃并重新组织了 html 和 css,这样它就不是问题了。 :(

    【讨论】:

      猜你喜欢
      • 2016-10-21
      • 2018-02-27
      • 2016-10-19
      • 2018-03-05
      • 2017-07-28
      • 2017-05-16
      • 2017-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多