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

Как конвертировать штрих-код в camelCase в AngularJS?

Есть ли какая-либо функция полезности в AngularJS, которая преобразует строку штрих-кода в строку camelCase? например: "min-max" становится "minMax"

Это довольно просто реализовать мою собственную функцию:

function toCamelCase(name) {
  return name.replace(/-(\w)/g, function(match) {
    return match[1].toUpperCase();
  });
}

Но я знаю, что Angular уже делает это (например, имя директивы), поэтому мне интересно, можно ли использовать механизм, который Angular имеет?

4b9b3361

Ответ 1

В angular это часть jqlite - минималистической реализации jquery, которую они используют внутри. Я не думаю, что есть способ получить доступ к этому, потому что я считаю, что это личное. Это функция:

function camelCase(name) {
  return name.
    replace(SPECIAL_CHARS_REGEXP, function(_, separator, letter, offset) {
      return offset ? letter.toUpperCase() : letter;
    }).
    replace(MOZ_HACK_REGEXP, 'Moz$1');
}

Где

var SPECIAL_CHARS_REGEXP = /([\:\-\_]+(.))/g;
var MOZ_HACK_REGEXP = /^moz([A-Z])/;

Ответ 2

Вы можете получить доступ к angular функции camelCase внутри директивы:

link: function (scope, element, attrs) {
  attrs.$normalize('ng-model'); // ngModel
  attrs.$normalize('ng:click'); // ngClick
  attrs.$normalize('ng_show'); // ngShow
}

Best!