如何在 ng-grid 列标题中呈现 html 格式的文本

2023-12-12

我在一个配置文件中有 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};
    }

当我这样做时,列标题变为空白!!!!帮助!


如果你想在列名中渲染HTML,你需要改变一个模板headerCellTemplate.html in ngGridJS 文件。为此,请在该模板中找到以下代码:

<div ng-click=\"col.sort($event)\" ng-class=\"'colt' + col.index\" class=\"ngHeaderText\">{{col.displayName}}</div>

并将其更改为:

<div ng-click=\"col.sort($event)\" ng-class=\"'colt' + col.index\" class=\"ngHeaderText\" ng-bind-html=\"col.displayName\"></div>

如果您对修改外部库内容不满意,可以覆盖该模板run()您的应用程序使用的方法$templateCache:

// Assuming you have
// var app = angular.module(...);
// somewhere before following code
app.run(function($templateCache){
    $templateCache.put("headerCellTemplate.html",
    "<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>"
);

请注意,我使用了ng-bind-html这可能不足以满足您的需求。如果是这种情况,请尝试使用ng-bind-html-unsafe(在 Angular 1.0.8 中)或阅读文档$sce.trustAsHtml()(角度 1.2+)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 ng-grid 列标题中呈现 html 格式的文本 的相关文章

  • 服务中的 AngularJS 变量未在视图中更新?

    我花了几天时间把头撞在桌子上 阅读博客文章 以及围绕我的问题提出的问题 我尝试了下面代码的几种变体 但到目前为止没有一个有效 我将不胜感激任何帮助 服务内的 taskList 变量会更新 但控制器中的变量不会更新 控制器 angular m
  • ui-router 在抽象父级上具有多个视图

    我正在尝试创建一个route层次结构与ui router 我遇到了问题 我有三层模板 访客模板 用户模板 管理员模板 所以我的index html页面是
  • 如何触发UI-Router View Load事件?

    第一次测试 ui router 但目前测试事件 我似乎无法理解如何触发 viewContentLoaded 或 Loading 虽然 我已经有 stageChangeSuccess 等工作了 我只是把一切都推到了http punkbit c
  • 如何重置表单中的 $dirty

    我在使用时遇到一个问题 dirty在我的申请表中 问题是一旦您更改表单字段 值 dirty将被设置为true但现在当您撤消更改时 它不会重置 dirty价值false 我们可以重置 dirty价值false手动但之后当您再次更改表单字段值时
  • 按 Chartjs 条形图的键对对象进行分组

    我正在尝试使用 Chart js 创建条形图 我在尝试根据每个用户的状态创建分组条形图时陷入困境 这是数据 statusId 0 firstName Joe status appealed count 1 statusId 0 firstN
  • Angular UI bootstrap 手风琴 - 展开创建可滚动和页面“跳转”

    我正在使用 Angular ui 引导手风琴 一切都很好 除了当我展开一个足够大的手风琴部分时 浏览器会显示页面的滚动条 整个页面会向左摇动滚动条的宽度 当手风琴足够小以至于不需要滚动条时 页面会恢复到原始大小 我不知道该怎么办 这是否需要
  • 有效使用 Angular Promise 和 Defers

    在 Angular 以及所有 SPA JS 框架 中 假设页面导航对于用户来说非常快速且 无缝 此速度的唯一瓶颈是使用 API 调用从我们的服务器检索数据 因此 寻找一种解决方案似乎是合理的 在该解决方案中 我们可以在等待 API 调用获得
  • 将安全的 Grafana 嵌入到 Web 应用程序中

    我想使用 AngularJS 将 Grafana 嵌入到我的 Web 应用程序中 目标是 当用户使用我的应用程序时 她应该能够单击按钮并加载 Grafana UI 就其本身而言 这是一项简单的任务 为此 我使用 apache 代理 Graf
  • ng-bootstrap ngbDropdown 在 Angular 4 中不起作用

    在我的 Angular 4 应用程序中 ng bootstrap 中的 ngbDropdown Element 不起作用 对于这种情况 我安装了以下 npm 模块 ng bootstrap ng bootstrap 1 0 0 alpha
  • 在 AngularJS 中将数组绑定到指令变量

    我正在尝试将数组放入模板中 以便我可以使用其中的各个值 我的问题是 该属性一旦进入我的模板就会变成字符串 因此它不再可以作为 var 0 访问 而是返回 字符串 的第一个字符 通常是 这是数据的简化设置 varForward 100 1 v
  • 将行推入使用 ng-repeat 以角度呈现的表格中

    当客户端单击该行时 我想在表中插入额外的行 不应预取数据 因为我预计最多有 30 行 但每行都有关联的数据 在一次获取中获取这些数据是不合理的 到目前为止 我的方法是使用 ng repeat 迭代我的集合并渲染表格 当客户端按下该行时 客户
  • Angularjs 模式的复选框表现得很奇怪

    我有一个有角度的应用程序plunker http plnkr co edit rac8w9g8L0eX8mlXKuVn p preview 当我们单击该按钮时 它会打开一个包含项目列表的模式对话框 其中 2 项是根据复选框表输入中的条件进行
  • 单元测试依赖注入

    我对茉莉花和业力是全新的 我相信我的环境设置正确 并且我能够运行非常基本的单元测试 但是一旦我尝试实例化控制器 我就会收到未知提供程序错误 并且我不确定如何调试它 我需要传入 stateProvider 依赖项吗 我在角种子示例中没有看到这
  • 如何以最少的查询次数获取帖子列表和关联标签

    我的表格结构如下 标签 更多的是一个类别 id 标签名称 描述 slug POSTS ID 标题 网址 邮戳 id idPost idTag USERS ID 用户名 userSlug VOTES id idPost idUser 每个帖子
  • 以角度选择项目后保持菜单打开

    单击我的菜单后 我的菜单将关闭toggleShare按钮 我怎样才能防止这种情况 我将 angularJS 与 Angular 材料一起使用 这是我的代码
  • BUG - 在 IOS 中没有选择标签的完成按钮

    我正在使用最新的离子并有一个简单的选择标签
  • 如何销毁角度工厂实例

    一方面 我有几个工厂 每个工厂都控制一个 websocket 另一方面 其中一个工厂应该在客户端登录时启动 因此 if user isLogged injector get NotificationsWebsocket 这就是我动态初始化工
  • CORS 在 jquery 中工作正常,但在 angularjs 中不行

    我的服务器端是php mysql 我正在另一个域的 Web 服务中进行 Ajax 调用 其中启用了 的访问控制 var postUrl http logical brains com elance clone test login php
  • 使用 Angular 指令禁用文本选择

    我正在学习 JavaScript 和 AngularJS 我想使用 Angular Directive 禁用文本选择 我有该函数的 JavaScript 代码 function clearSelection if document sele
  • 传递给 $resource 的 @id 是什么?

    resource entries id id id update method PUT id是什么 在 资源上doc page http docs angularjs org api ngResource 24resource下面有人这么说

随机推荐