【问题标题】:How do I change css styles using AngularJS?如何使用 AngularJS 更改 css 样式?
【发布时间】:2017-08-23 13:57:22
【问题描述】:

虽然我通常能够为网页制作 css 样式,但我尝试使用 AngularJS 对 css 进行的任何更改,即使使用 ng-style="xy",似乎都不会改变页面上的任何内容。

这是我的代码:

<div id="tableScrollPanel">
    <table class="table">
        <thead>
        <tr>
            <th></th>
            <th ng-style="{
                    display: 'inline-block',
                    white-space: 'nowrap',
                    -webkit-transform: 'translate(0em, 0em) rotate(-90deg)',
                    -moz-transform: 'translate(0em, 0em) rotate(-90deg)',
                    -o-transform: 'translate(0em, 0em) rotate(-90deg)',
                    transform: 'translate(0em, 0em) rotate(-90deg)',
                    -webkit-transform-origin: '0em 0em',
                    -moz-transform-origin: '0em 0em',
                    -o-transform-origin: '0em 0em',
                    transform-origin: '0em 0em',
                    -ms-transform: 'none',
                    -ms-transform-origin: 'none',
                    filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=3)',
                    position: 'absolute',
                    bottom: '0em\9'
                    }" ng-repeat="(key,headline) in model.headlines" ng-class="headline.classes" data-ng-bind="headline.name">
                {{headline}}
            </th>
        </tr>
        </thead>

        <tbody>
        <tr data-ng-repeat="(key, row) in model.rows">
            <td data-ng-bind="row.title"></td>
            <td data-ng-repeat="(key2, column) in row.columns">
                <input type="text" data-ng-model="column.entry" ng-disabled="column.disabled"
                       ng-change="changeEntry(key, key2)">
            </td>

        </tr>
        </tbody>
    </table>
</div>
<div style="text-align: right">
    <button class="btn" data-ng-click="saveChanges()">Speichern</button>
</div>

【问题讨论】:

    标签: javascript html css angularjs


    【解决方案1】:

    您必须对带有- 的属性使用简单的引用

    所以对于空白应该是这样的:

    'white-space': 'nowrap'
    

    【讨论】:

    • 谢谢,这让我在文档中感到困惑,有 2 处样式更改,一个带有单引号,另一个没有单引号 docs.angularjs.org/api/ng/directive/ngStyle
    • @LinuxNoob1337 ng-style 属性的内容是一个评估为对象的Angular expression。这意味着您提供的对象需要使用有效的 JavaScript 语法。
    【解决方案2】:

    从 ng-style 中取出 CSS 并创建一个 CSS 类并将其添加到 ng-class。

    如果没有其他内容会更容易阅读。

    你期望会发生什么?另外,你在第一个元素中使用 ng-repeat 做什么?

    【讨论】:

    • 这表示一个填充了数据的矩阵,该数据存储在文件中并在整个 Web 应用程序中使用。由于这不是我的代码,我不知道是否实现的解决方案是实现此目标的唯一/最佳方法
    • 我写入的任何文本都不会出现在任何地方,加载的文本也不受我的风格影响,有什么线索吗?
    • 啊,好的,现在我明白了 ng-class="headline.classes" ...这就是为什么没有对其进行任何更改的原因,感谢您对正确方向的提示,会给您一个大拇指上升但没有足够的声誉
    • 没问题。如果有帮助,我很高兴:)
    猜你喜欢
    • 2014-06-02
    • 2017-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-13
    • 1970-01-01
    • 2017-09-05
    • 2013-07-20
    相关资源
    最近更新 更多