今回はAngularのカスタム命令の使い方と、Angularのカスタム命令を使用する際の注意点を紹介します。以下は実際的なケースです。
カスタマイズ指定
angular.module('dir',[ ]).directive( 'mydir' ,function( ){ return {template:'<div>hello</div>'}} )
元のhtmlへの属性展開のカスタマイズ指定。
指定アプリケーション:
<div mydir> </div>写成自定义属性 ----A----属性 -<mydir></mydir>写成元素。注意如果需要改变模板路径里面的内容,就需要使用ng-transclude,然后在模板指令的配置项里写 return {templateUrl :../template.html,transclued:true} -----E----元素
設定項目にtemplateUrl(scope:{footer:@footer})を記述できます(@footerの要素タグ内のfooterは属性であることに注意)、
Error: $compile:iscp
Invalid Isolate Scope Definition Description When declaring isolate scope the scope definition object must be in specific format which starts with mode character (@&=<), after which comes an optional ?, and it ends with an optional local name. myModule.directive('directiveName', function factory() { return { ... scope: { 'localName': '@', // OK 'localName2': '&attr', // OK 'localName3': '<?attr', // OK 'localName4': ' = attr', // OK 'localName5': ' =*attr', // OK 'localName6': 'attr', // ERROR: missing mode @&=< 'localName7': 'attr=', // ERROR: must be prefixed with @&=< 'localName8': '=attr?', // ERROR: ? must come directly after the mode 'localName9': '<*' // ERROR: * is only valid with = } ... } });
に複数の単語を記述できますディレクティブ キャメルケースの名前付け ('myDir') を使用します。 html では大文字と小文字が区別されないため、my-dir を使用して html に命令を記述することができます。
-- templateUrl(scope:{footer:@footer}, replace:true) の replace: true は、カスタム指定されたタグを置き換えることができます。
指定されたクラスの形式:
ですが、デフォルトは A||E であるため、一致するパターン設定項目を追加する必要があります:マッチング モードは A、C、E、M の合計 4 つあります (コメント、あまり一般的ではありません)。デフォルトは A | E です。
この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。
推奨読書:
$watch、$apply、$digestのデータバインディングプロセスの詳細な説明
以上がAngularのカスタムディレクティブの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。