AngularJS добавляет ng-click в директиве

Я реализую директиву drag'n'drop. При удалении я добавляю копию элемента в свой div и добавляю к нему атрибут ng-click следующим образом:

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

Например, у контроллера есть

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

И это не работает. Если я добавлю эту кнопку на странице вручную, она отлично работает.

Ответ 1

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

Ответ 2

Я предполагаю, что вам нужно скомпилировать новый шаблон, чтобы AngularJS его распознал. Документы дают вам хороший пример того, как использовать ng.$compile.

Клонирование может быть выполнено следующим образом:

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
});