AngularJSのディレクティブからディレクティブを追加する
宣言されている要素にさらにディレクティブを追加する処理を行うディレクティブを作成しようとしています。たとえばdatepicker、datepicker-languageとの追加を処理するディレクティブを作成したいとしng-required="true"ます。 これらの属性を追加してから使用する$compileと、明らかに無限ループが生成されるので、必要な属性をすでに追加しているかどうかを確認しています。 angular.module('app') .directive('superDirective', function ($compile, $injector) { return { restrict: 'A', replace: true, link: function compile(scope, element, attrs) { if (element.attr('datepicker')) { // check return; } element.attr('datepicker', 'someValue'); element.attr('datepicker-language', 'en'); // some more $compile(element)(scope); } }; }); もちろん、$compile要素を指定しない場合、属性は設定されますが、ディレクティブはブートストラップされません。 このアプローチは正しいですか、それとも間違っていますか?同じ動作を実現するより良い方法はありますか? UDPATE:$compileこれを達成する唯一の方法であるという事実を踏まえて、最初のコンパイルパスをスキップする方法はありますか(要素に複数の子が含まれる場合があります)?たぶん設定terminal:true? UPDATE 2:ディレクティブをselect要素に入れてみましたが、予想どおり、コンパイルが2回実行されoptionます。つまり、予想されるの数が2倍になります。