我在一个配置文件中有 5 个列名,我将其读入一个名为 javascript 中的 columns 的数组中。
var columns = [];
var columnNames = [];
var columnCount = 5;
$scope.nettingGridOptions = {
data : 'tableData',
columnDefs: 'columnNames'
}
接下来,我只需迭代列数组并在中分配值columnNames
数组以便我的 ng-grid 开始显示正确displayName
.
for(i=0;i<columnCount;i++)
{
columnNames[i] = { field: i, displayName: columns[i], headerClass : "myPersonalHeaderClass"};
}
我遇到的问题是列名太大。我想将列名称(例如“aaaaaaaa bbbbbbbb cccccccc”)拆分为三行并将列名称显示为
啊啊啊啊啊
bbbbbbbb
cccccccc
存储这些列名称的配置文件,我尝试编辑它以在我想要拆分的位置添加
标记,但是
渲染页面时,标签未得到解释,我看到列名称为 aaaaaaaa
bbbbbbbbbb
cccccccc
我想我必须使用headerCellTemplate
,但不太确定我应该在那里做什么来告诉它渲染{{col.displayName}}
作为 HTML。
看到 lort 给出的答案后(参见下面的第一个答案)-我尝试了一些方法,但仍然不起作用。
Hello,
谢谢 Lort,我正在尝试使用模板,如上所述https://github.com/angular-ui/ng-grid/wiki/Template.
这就是我所做的(将您使用 ng-html-bind 的建议与上面链接建议的更新模板的方式合并)。
var myHeaderCellTemplate = '<div class="ngHeaderSortColumn {{col.headerClass}}" ng-style="{\'cursor\': col.cursor}" ng-class="{ \'ngSorted\': !noSortVisible }">'+
'<div ng-click="col.sort($event)" ng-class="\'colt\' + col.index" class="ngHeaderText" ng-bind-html="col.displayName"></div>'+
'<div class="ngSortButtonDown" ng-show="col.showSortButtonDown()"></div>'+
'<div class="ngSortButtonUp" ng-show="col.showSortButtonUp()"></div>'+
'<div class="ngSortPriority">{{col.sortPriority}}</div>'+
'<div ng-class="{ ngPinnedIcon: col.pinned, ngUnPinnedIcon: !col.pinned }" ng-click="togglePin(col)" ng-show="col.pinnable"></div>'+
'</div>'+
'<div ng-show="col.resizable" class="ngHeaderGrip" ng-click="col.gripClick($event)" ng-mousedown="col.gripOnMouseDown($event)"></div>';
for(i=0;i<columnCount;i++)
{
columnNames[i] = { field: i, displayName: columns[i], headerClass : "myPersonalHeaderClass", headerCellTemplate: myHeaderCellTemplate};
}
当我这样做时,列标题变为空白!!!!帮助!