7

私が書いたディレクティブの下を見つけてください。

angular.module('netVogue.directives', []).
  directive('set-First-Active', function() {
      return function(scope, element, attrs){
          alert('sample');
          element.addClass("active");     
      };
  });

このディレクティブを以下の方法でモジュールに追加しました。

angular.module('netVogue', ['netVogue.filters', 'netVogue.services', 'netVogue.directives']);

このディレクティブをテンプレートで次の形式で使用しました。

<div class="item" ng-repeat="viewPrintcampaign in viewPrintcampaigns" ng-init="first=$first" set-First-Active> 
</div>

ただし、アラートの応答もクラスも追加されていません。誰かがこれで私を助けてくれますか? 依存関係があるため、「ng-class」を使用したくありませんが、ng-repeat の最初の要素に class='active' を追加したいと考えています。

どんな助けでも大歓迎です。前もって感謝します。

4

1 に答える 1

33

ディレクティブを宣言するときは、キャメル ケース名 ( setFirstActive) を使用する必要があります。

ディレクティブに関するデベロッパー ガイドを参照してください。

ディレクティブには、「ngBind」などのキャメル ケースの名前があります。このディレクティブは、キャメル ケース名を特殊文字 :、-、または _ を使用してスネーク ケースに変換することで呼び出すことができます。オプションで、ディレクティブの前に x- または data- を付けて、HTML バリデータに準拠させることができます。以下は、可能なディレクティブ名の一部のリストです: ng:bind、ng-bind、ng_bind、x-ng-bind、および data-ng-bind。

于 2012-08-13T12:25:51.387 に答える