Как конвертировать штрих-код в camelCase в AngularJS?
Есть ли какая-либо функция полезности в AngularJS, которая преобразует строку штрих-кода в строку camelCase? например: "min-max" становится "minMax"
Это довольно просто реализовать мою собственную функцию:
function toCamelCase(name) {
return name.replace(/-(\w)/g, function(match) {
return match[1].toUpperCase();
});
}
Но я знаю, что Angular уже делает это (например, имя директивы), поэтому мне интересно, можно ли использовать механизм, который Angular имеет?
Ответы
Ответ 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!