一尘不染

自定义AngularJS指令名称中包含短划线不起作用

angularjs

我编写了以下Angular指令,该指令将向所有子代添加“必需”属性:

.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”无效?


阅读 193

收藏
2020-07-04

共1个答案

一尘不染

Angular将camelCasing转换为snake-
casing,因此您的requireall指令需要重命名为requireAll,然后可以require-all在标记中使用(或者data- require-all如果要正确标记自定义标记)。一开始让我感到困惑。

2020-07-04