scope
、element
、およびattrs
というパラメータは、ドキュメントhereに従ってカスタムディレクティブに定義されていますが、名前を変更することができます。
scope
:これはコントローラ
element
で$scope
と同様に、カスタムディレクティブのスコープです:これは、カスタムディレクティブ
attrs
の要素である:これは内の属性のセットですカスタムディレクティブ。あなたはmyDirective
という名前のカスタムディレクティブを構築する場合、例えば、
(!、補正用@zeroflagLのおかげ要素の属性でなければなりません)、そしてあなたはおそらく、このようなあなたのhtmlパーシャルでそれを使用します。
<my-directive num-rows="3"></my-directive>
をここで
、num-rows
はあなたのディレクティブの属性であり、あなたはあなたのlink
関数内でその値を取得できます。
function link(scope, element, attrs) {
console.log('num-rows:', attrs.numRows);
//you can change its value, too
attrs.$set('numRows', '10'); //attrs setter
//you can watch for its changes to trigger some event
attrs.$observe('numRows', function(newVal) {
console.log('trigger some event for the changes in numRows here');
});
}
また、上記のリンク機能では、あなたがする要素/ディレクティブをバインドすることができますアクション:
element.bind('click', function() {
console.log('do something with the click event');
});
ドキュメントを読むのに時間を費やすことをお勧めします。リンク関数は、カスタムディレクティブで必要とする別のディレクティブのコントローラである4番目のパラメータを取ることができます。例えば:
require: '^ngModel'
....
function link(scope, element, attrs, ngModelCtrl) {
....
}
あなたはgoogleにする必要があります。 http://www.angularjshub.com/examples/customdirectives/compilelinkfunctions/ –