jQuery が Angular に組み込まれると、ディレクティブ内で DOM 操作に $(element) と $(this) の両方を自由に使用できるようになります。
それらの違いは何ですか?どちらが推奨されますか?それらは交換可能ですか?
jQuery が Angular に組み込まれると、ディレクティブ内で DOM 操作に $(element) と $(this) の両方を自由に使用できるようになります。
それらの違いは何ですか?どちらが推奨されますか?それらは交換可能ですか?
$(this)
実行されるメソッドのコンテキストに依存し、$(element)
常にディレクティブが添付されているものを参照します。
ここに不自然な例があります
module.directive('myDirective', [function() {
return {
template: '<div><button id="btn">Click Me</button></div>',
restrict: 'E',
link: function(scope, element, attrs, controller) {
$("#btn").on('click', function() {
// $(this) != $(element)
// $(this) is the button element from the template
// $(element) is the directive element
});
}
}
}]);