2012-11-22 18 views
10

Wdrażam dyrektywę drag'n'drop. Na spadek dodać kopię elementu do mojego div i dołącz ng-click atrybut to tak:AngularJS dodaje ng-click do dyrektywy

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

na przykład w kontroler mam

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

I to nie działa. Jeśli dodaję ten przycisk na stronie ręcznie, działa dobrze.

Odpowiedz

0

myślę, że trzeba opracować nowy szablon tak że angularjs rozpoznaje go. Dokumenty dają dobry przykład, jak korzystać z ng.$compile.

Klonowanie może odbywać się wtedy tak:

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); 
Powiązane problemy