minesweeper.directive('ngRightClick', function($parse) {
return function(scope, element, attrs) {
var fn = $parse(attrs.ngRightClick);
element.bind('contextmenu', function(event) {
scope.$apply(function() {
event.preventDefault();
fn(scope, {$event:event});
});
});
};
});
Le code ci-dessus est expliqué comme étant une instruction ngRightClick personnalisée, mais tout d'abord, je ne comprends pas sa signification. Une instruction personnalisée ne devrait-elle pas se présenter sous la forme suivante :
.minesweeper.directive("mineGrid",function(){
return {
restrict:'E',
replace:false,
templateUrl:'./templates/mineGrid.html'
}
});
S'il vous plaît, donnez-moi quelques conseils
Tout d'abord, le clic droit personnalisé n'est pas un élément personnalisé et ne doit pas être limité à un élément, encore moins à du HTML. La fonction de retour direct est l'abréviation de la fonction de lien de retour direct, et le bouton droit personnalisé doit être limité à un attribut.
Cela utilise le service intégré $parse d'Angular. Il est recommandé de lire cet article Explication détaillée de l'initié d'AngularJS Directive
.