1. ホーム
  2. angularjs

Angularディレクティブ名:小文字のみ使用可能?

2023-08-22 01:42:44

質問

私のコードです。

app.directive('abcabc', function (){ alert('directive');}); // working

しかし

app.directive('abcAbc', function (){ alert('directive');}); // not working !
app.directive('abc-abc', function (){ alert('directive');}); // not working !

私は間違っているのでしょうか? それともAngularディレクティブに特別な命名規則があるのでしょうか?

どのように解決するのですか?

AngularJSはすべての人を幸せにしようとしています。

データ属性の使用を好む人もいます。 data-abc-abc のようなデータ属性を使うことを好む人もいます。これはバリデーターを満足させるためでしょう。また、次のような名前空間を使用することを好む人もいます。 abc:abc のような名前空間を使うことを好む人もいれば、 実際のディレクティブ名である abcAbc . あるいは、すべて大文字の ABC_ABC . または、次のような拡張属性 x-abc-abc .

AngularJSはHTMLで使われる名前を正規化し、これらのケースを全てカバーしようと試みます。 data-x- は取り除かれ、残りはキャメルケースの : , -_ を単語の境界とする。このため abcAbc を上記の場合から、JavaScriptで宣言されたディレクティブを検索するために使用されます。

これはすべて属性の正規化 (US: attribute normalization) と呼ばれるものであり、そのためには AngularJSのドキュメント ソースコード .