web-dev-qa-db-fra.com

Angularjs définit dynamiquement l'attribut

J'essaye d'ajouter dynamiquement l'attribut à div dans le contrôleur dans js angulaire. 

 var table = document.getElementById("div_id").setAttribute("ng-click", "function_name()");
 $scope.$apply();

Tout se passe bien, dans le débogueur, je vois que cet attribut a été ajouté mais il n'exécute pas ma fonction. Avez-vous des idées sur la façon d’ajouter des attributs à la div existante et comment le faire fonctionner?

18
user2282428

Vous devez recompiler votre div

var el = angular.element("div_id");
$scope = el.scope();
$injector = el.injector();
$injector.invoke(function($compile){
   $compile(el)($scope)
})

http://jsfiddle.net/r2vb1ahy/

18
cevek

récupère élément par identifiant et définit un nouvel attribut et une nouvelle valeur

 var el =angular.element('#divId');
 el.attr('attr-name', 'attr-value');
13
Shaishab Roy

Pour définir attribut utiliser dynamiquement

var myEl = angular.element(document.querySelector('#divID'));
myEl.attr('myattr',"attr val");

Pour obtenir une valeur d'attribut

var myEl = angular.element( document.querySelector('#divID'));
alert(myEl.attr('myattr'));

Pour supprimer un attribut, utilisez

var myEl = angular.element( document.querySelector( '#divID' ) );
myEl.removeAttr('myattr');
0
Navoneel Talukdar