Egghead.ioには、AngularJS のディレクティブの制限に関する優れた説明があります。カスタム ディレクティブは次のように定義できます。
angular.module("app", []).directive("blah", function () {
return {
restrict: "A",
template: "blah directive. nothing to see here."
};
});
これにより、この質問をする目的で、属性ディレクティブと呼ばれるものが作成されます( による)。restrict: "A"
これは実際にはカスタム ディレクティブに対する Angular のデフォルトの制限であり、このディレクティブは次のように使用できます。
<div blah>
<!-- content of directive -->
</div>
ただし、カスタム ディレクティブを作成する場合は、通常、次のような要素ディレクティブを使用します。
<blah>
<!-- content of directive -->
</blah>
前者の属性ディレクティブが後者の要素ディレクティブよりも優れている点と、それがデフォルトとして選択された理由は何ですか?