Подтвердить что ты не робот

Angular UI Сетка между заглавными буквами в заголовке

Когда я использую несколько заглавных букв в ячейках заголовка (например, GPRS), они автоматически разделяются пробелами (G P R S). Это особенно раздражает, когда у меня есть два слова (сигнал GPRS отображается как сигнал G P R S) или два аббревиатуры (GPRS EDGE отображается как G P R S E D G E). Это значит быть таким? Если да, то как я могу отключить его?

4b9b3361

Ответ 1

Я только что нашел способ обойти это. В свойстве columnDefs вашего gridOptions добавьте displayName для столбца, который содержит несколько заглавных букв. Что-то вроде этого:

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

Ответ 2

Чтобы ответить на вопрос: как его отключить?

Я изменил исходный код. Мое приложение использует локальную копию файла в 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 ');

Другими словами, просто верните имя столбца, не заменяйте.

Не забудьте перезагрузить файлы своей веб-страницы/javascript, прежде чем тестировать, что он работает правильно.

Ответ 3

Вы также можете использовать свойство отображаемого имени в UI-Grid: displayName: 'CAPITAL WORDS'

displayName: имя столбца, которое будет отображаться в заголовке. Если displayName не предоставляется, тогда создается имя с именем.

DEMO