Frage Benutzerdefinierte Winkeldirektive mit einem Bindestrich im Namen funktioniert nicht


Ich habe die folgende Winkeldirektive geschrieben, die allen Kindern das Attribut "required" hinzufügt:

.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);
    }
  }
});

Ich will es wirklich "Require-All" nennen, aber wenn ich es umbenenne, funktioniert es nicht mehr. Warum ist "erforderlich", aber nicht "alles erforderlich"?


8
2017-09-12 11:55


Ursprung


Antworten:


Angular konvertiert camelCasing zu Snake-Casing, also muss die requireall-Direktive umbenannt werden requireAll, dann kannst du verwenden require-all in Ihrem Markup (oder data-require-all Wenn Sie benutzerdefinierte Tags korrekt markieren möchten. Verwirrt mich zunächst für eine Weile.


14
2017-09-12 12:07



Benenne die Direktive in "requireAll" um;

.directive("requireAll",…)

Und eine Direktive namens abcDef kann als verwendet werden abc-def im Markup.


4
2017-09-12 11:56