76

私のコード:

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 ディレクティブには特別な命名規則がありますか?

4

3 に答える 3

118

AngularJS はみんなを幸せにしようとしています!

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

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

これはすべて属性の正規化 (米国: 属性の正規化) と呼ばれ、AngularJS のドキュメントソース コードで確認できます。

于 2013-08-01T10:01:35.390 に答える
25

ディレクティブ内の対応する名前には、html および camelCase 内でダッシュ区切りの名前を使用する必要があります。

ドキュメントで読むことができるように: Angular は属性名に name-with-dashes を使用し、対応するディレクティブ名に camelCase を使用します)

ここ: http://docs.angularjs.org/tutorial/step_00

于 2013-08-01T10:02:21.530 に答える