Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 标题中大写字母之间的角度UI网格空间_Javascript_Angularjs_User Interface_Grid_Angular Ui Grid - Fatal编程技术网

Javascript 标题中大写字母之间的角度UI网格空间

Javascript 标题中大写字母之间的角度UI网格空间,javascript,angularjs,user-interface,grid,angular-ui-grid,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)时,这会变得特别烦人。 这是注定的吗?如果是这样的话,我怎样才能禁用它呢?我刚刚找到了一种解决方法。在gridOptions的columnDefs属性中,为包含多个大写字母的列添加displayName。大概是这样的: $scope.gridOptions = { colu

当我在标题单元格(如GPRS)中使用多个大写字母时,它们会自动以空格分隔(g p R S)。当我有两个单词(GPRS信号显示为G P R S信号)或两个首字母缩写词(GPRS EDGE显示为G P R S E D G E)时,这会变得特别烦人。
这是注定的吗?如果是这样的话,我怎样才能禁用它呢?

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

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

回答问题:如何禁用它

我修改了源代码。我的应用程序正在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文件是否正常工作之前,不要忘记重新加载它。

您也可以在UI网格中使用显示名称属性:
displayName:“大写字母”

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


我在ui grid v3.0.0-RC.18-e4b2293-2015-01-29中遇到了完全相同的问题。这解决了我的问题:添加一个显示名就可以解决问题。谢谢还要回答问题中的“这是否意味着像这样?”部分-是的,这是默认设置,因为它允许您在中的列定义中定义多个单词的名称,并在列标题中显示为空格。如果不需要,是否有方法关闭此CamelCase函数?我所有的列名都是大写的,这导致了混乱。另外,我所有的列名都带有下划线,所以如果有这样的功能,那就太好了。@Russell我不知道如何将这个CamelCase功能转换为动态列名,然后呢?