【问题标题】:Angularjs ng-class with ng-grid / swapping css styleAngularjs ng-class 与 ng-grid / 交换 css 样式
【发布时间】:2014-08-06 01:04:17
【问题描述】:

我有一个使用 ng-grid 的非常简单的 Angular 应用程序。由于某种原因,我不知道如何根据数据应用样式。我需要能够根据下面的数据状态代码显示不同的状态图像:

控制器:

$scope.myData2 = [
            {service: "aaa", status: "ok"},
            {service: "ccc", status: "warning"}];
$scope.gridOptions2 = {
            data: 'myData2',
            headerRowHeight:0,
            rowHeight: 39,
            enableRowSelection: false,
            enableHighlighting:true,
            columnDefs: [
                {field: 'service', enableCellEdit: true},
                {field:'status', cellTemplate : 'stateTemplate.html'}]
        };

指令:

angular.module('myApp')
    .directive("statusIcon", function() {
        return {
            restrict: 'E',
            template: "<div ng-class=status-{{row.getProperty('status')}}></div>"
        };
    });

模板:

<status-icon></status-icon>

css:

.status-ok{
    width: 24px;
    height: 24px;
    background: url("../images/status_ok.png") no-repeat;

}

.status-warning{
    width: 24px;
    height: 24px;
    background: url("../images/status_ok.png") no-repeat;

}

当我渲染页面时,这是输出:

<status-icon class="ng-scope"><div ng-class="status-ok"></div></status-icon>

我错过了经典的class="status-ok"

我做错了什么?

PLUNKRhttp://plnkr.co/edit/4xTC4pKIR0AnzD89iIp2?p=preview

【问题讨论】:

  • 你可以使用单元格模板。
  • 知道如何实现这一目标吗?

标签: angularjs ng-grid ng-class


【解决方案1】:

看看单元格模板article here

columnDefs: [{ field: 'firstName', displayName: 'First Name', width: 90, cellTemplate: '<div>{{row.entity[col.field]}}</div>' },
                     { field: 'lastName', displayName: 'Last Name', width: 80 },
                     { field: 'age', cellClass: 'ageCell', headerClass: 'ageHeader' } ]

你可以定义cellClassheaderClass或完全不同的cellTemplate

编辑

以下是如何将 ng-class 与单元格模板一起使用的示例

<div ng-class="row.entity[col.field] == 'success' ? 'successClass' : 'errorClass'">{{row.entity[col.field]}}</div>

编辑

工作plunker

你不需要 ng-class 你只需要类

【讨论】:

  • 这对我不起作用。如何选择 ng-class 并将其分配给普通类?
  • 我非常感谢您的努力,但您的解决方案不起作用。而且我遇到了错误。如果使用 cellTemplate 无法实现,我只需将 ng-class 值分配给普通类
  • 当然,给我几分钟
  • 检查修复,虽然我没有使用该指令,但您可以轻松地将我的模板替换为您的指令
  • 太棒了,效果很好!非常感谢你:)
猜你喜欢
  • 1970-01-01
  • 2014-10-03
  • 1970-01-01
  • 1970-01-01
  • 2014-10-05
  • 2013-11-26
  • 2014-09-29
  • 2013-03-02
  • 2016-08-26
相关资源
最近更新 更多