web-dev-qa-db-fra.com

en utilisant element.AddClass pour ajouter une directive angular js, qui est restreinte pour agir comme une 'classe'

J'ai fait une directive en angular js l'a restreint pour agir comme une classe et cette directive rend mon élément glissable.

Sur mousehover, je veux faire addClass et ajouter cette directive qui est censée être une classe, mais cela ne donne pas le résultat souhaité, ai-je raté quelque chose? voici ce que je fais

module.directive('myDraggable', function ($document) {

   var directiveObject= {

   restrict:'AC',

//logic of dragging
}
return directiveObject;
});

j'essaye de faire

 element.addClass('myDraggable'); // but this fails! pls help
20
Rishul Matta

Je suppose que Angular n'observe pas les éléments, s'ils obtiennent une nouvelle directive attachée au moment de l'exécution. Pour le faire fonctionner, vous devez recompiler l'élément après avoir ajouté la classe avec $ compile .

Quelque chose comme

element.addClass('myDraggable');
$compile(element)(scope);

cordialement

46
kfis

Vous pouvez utiliser la fonction angular.element . C'est fondamentalement la même chose qu'un élément jquery $ (element)

Faites juste:

angular.element(element).addClass('myDraggable');
9
Graham T