我编写了以下Angular指令,它将为所有子节点添加“required”属性:
.directive("requireall", function($compile) {
return {
restrict: 'A', //only want it triggered for attributes
compile: function(element, scope) {
// Prevent infinite loop on compile
element.removeAttr("requireall");
var allChildren = element.find('*');
allChildren.attr('required', 'required');
$compile(element)(scope);
}
}
});
我真的想称之为“require-all”,但是如果我重命名它,那么它就不再起作用了。为什么“requireall”工作但不是“require-all”?
答案 0 :(得分:15)
Angular将camelCase设置为snake-casing,因此您的requireall指令需要重命名为requireAll
,然后您可以在标记中使用require-all
(或data-require-all
如果您想要正确使用{{1}}标记自定义标签)。起初困惑了我一段时间。
答案 1 :(得分:5)
将指令重命名为" requireAll&#34 ;;
.directive("requireAll",…)
名为abcDef
的指令可以在标记中用作abc-def
。