AngularJS中是否有任何实用程序函数将破折号字符串转换为camelCase字符串?例如:“min-max”变为“minMax”
实现我自己的功能非常简单:
function toCamelCase(name) {
return name.replace(/-(\w)/g, function(match) {
return match[1].toUpperCase();
});
}
但是,我知道Angular已经这样做了(例如指令名),所以我想知道是否可以使用Angular的机制?
答案 0 :(得分:50)
您可以在指令中访问angular的camelCase函数:
link: function (scope, element, attrs) {
attrs.$normalize('ng-model'); // ngModel
attrs.$normalize('ng:click'); // ngClick
attrs.$normalize('ng_show'); // ngShow
}
最佳!
答案 1 :(得分:9)
在角度中,这是jqlite的一部分,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])/;