标题中大写字母之间的Angular UI网格空间

时间:2015-02-25 20:10:42

标签: javascript angularjs user-interface grid angular-ui-grid

当我在标题单元格中使用多个大写字母(例如GPRS)时,它们会自动被空格分隔(G P R S)。当我有两个单词(GPRS信号显示为G P R S信号)或两个首字母缩略词(GPRS EDGE显示为G P R S E D G E)时,这会特别烦人。 这是否意味着这样?如果是这样,我该如何禁用它?

3 个答案:

答案 0 :(得分:32)

我刚刚找到了解决方法。在gridOptions的columnDefs属性中,为包含多个大写字母的列添加displayName。像这样:

$scope.gridOptions = {
  columnDefs: [
    { name: 'GPRS', displayName: 'GPRS', field: 'gprsField' }
  ]
};

答案 1 :(得分:1)

回答这个问题:如何禁用它?

我修改了源代码。我的应用程序在lib / ui-grid.info-x.x.x / release / ui-grid.js中使用该文件的本地副本

搜索名为“readableColumnName”的函数并替换或注释掉以下内容:

      return columnName;
  //return columnName.replace(/_+/g, ' ')
    // Replace a completely all-capsed word with a first-letter-capitalized version
    //.replace(/^[A-Z]+$/, function (match) {
    //  return angular.lowercase(angular.uppercase(match.charAt(0)) + match.slice(1));
    //})
    // Capitalize the first letter of words
    //.replace(/([\w\u00C0-\u017F]+)/g, function (match) {
    //  return angular.uppercase(match.charAt(0)) + match.slice(1);
    //})
    // Put a space in between words that have partial capilizations (i.e. 'firstName' becomes 'First Name')
    // .replace(/([A-Z]|[A-Z]\w+)([A-Z])/g, "$1 $2");
    // .replace(/(\w+?|\w)([A-Z])/g, "$1 $2");
    //.replace(/(\w+?(?=[A-Z]))/g, '$1 ');

换句话说,只需返回columnName,不要做任何替换。

在测试网页/ javascript文件是否正常工作之前,请不要忘记重新加载网页/ javascript文件。

答案 2 :(得分:1)

您还可以在UI-Grid中使用显示名称属性:displayName: 'CAPITAL WORDS'

  

displayName:将在标题中显示的列名。如果   不提供displayName,然后使用名称生成一个。

DEMO