2012-11-22 18 views
10

Sto implementando la direttiva drag'n'drop. Su goccia ho aggiungere una copia di elemento alla mia div e aggiungere ng-click attributo in questo modo:AngularJS che aggiunge ng-click nella direttiva

copy.append('<button class="close" ng-click="abc()">&times;</button>'); 

Ad esempio, nel controllo ho

$scope.abc = function() { 
    alert('Hello!'); 
} 

E non funziona. Se aggiungo manualmente questo pulsante sulla pagina, funziona correttamente.

risposta

0

Immagino che sia necessario compilare il nuovo modello in modo che AngularJS lo riconosca. I documenti forniscono un buon esempio su come utilizzare ng.$compile.

La clonazione può essere fatto allora in questo modo:

var templateHTML = angular.element('<p>{{total}}</p>'), 
    scope = ....; 

var clonedElement = $compile(templateHTML)(scope, function(clonedElement, scope) { 
    //attach the clone to DOM document at the right place 
}); 
8
copy.append('<button class="close" ng-click="abc()">&times;</button>'); 
$compile(copy)($scope); 
Problemi correlati