2

ディレクティブに関して 2 つの質問があります。最初の質問は、プロバイダーの注入に関するものです。AngularJS Web サイトにリストされているコンパイル ディレクティブの例を使用しました。その例では、モジュールを作成し、そのモジュールからディレクティブを作成するように述べています

// declare a new module, and inject the $compileProvider
angular.module('compile', [], function($compileProvider) {
  // configure new 'compile' directive by passing a directive
  // factory function. The factory function injects the '$compile'
 $compileProvider.directive('compile', function($compile) {...

私のアプリケーションでは、そのようにディレクティブを作成するだけです

myApp.directive('compile', function($compile) {...

コードのどこにも $compileProvider を参照していませんが、コードは引き続き機能し、テンプレートを静かにコンパイルします。何故ですか?

また、テンプレートをコンパイルするときはうまく機能しますが、「switch」ステートメントをコンパイルするときを除いて、すべて機能するようです。「switch」ステートメントはスコープをリンクしていないようで、他のすべての要素は問題なくコンパイルされます。これは、私が $compileProvider を注入していないという事実に関連していますか、それとも、コンパイル時に追加の手順が必要な switch ステートメントに関する何かがありますか?

ありがとうフランク

4

1 に答える 1

2

module.directiveは単に$compileProvider.directive. module.directiveのドキュメントでは、 $compileProvider.directive参照しています。

ディレクティブ内での使用に関しては、switchこれをどのように行っているかの例を提供できますか? 何をオンにしているか、どこで行っているかによっては、ディレクティブを正しく定義していない可能性があります。たとえば、ディレクティブ コールバック内で切り替える場合、それは 1 回だけ実行されるため、caseステートメントの 1 つだけが勝ち、ディレクティブを 1 つだけ作成します。

于 2013-05-10T00:48:50.883 に答える