Javascript 标题中大写字母之间的角度UI网格空间
当我在标题单元格(如GPRS)中使用多个大写字母时,它们会自动以空格分隔(g p R S)。当我有两个单词(GPRS信号显示为G P R S信号)或两个首字母缩写词(GPRS EDGE显示为G P R S E D G E)时,这会变得特别烦人。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
这是注定的吗?如果是这样的话,我怎样才能禁用它呢?我刚刚找到了一种解决方法。在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功能转换为动态列名,然后呢?