Ответ 1
copy.append('<button class="close" ng-click="abc()">×</button>');
$compile(copy)($scope);
Я реализую директиву drag'n'drop. При удалении я добавляю копию элемента в свой div и добавляю к нему атрибут ng-click
следующим образом:
copy.append('<button class="close" ng-click="abc()">×</button>');
Например, у контроллера есть
$scope.abc = function () {
alert('Hello!');
}
И это не работает. Если я добавлю эту кнопку на странице вручную, она отлично работает.
copy.append('<button class="close" ng-click="abc()">×</button>');
$compile(copy)($scope);
Я предполагаю, что вам нужно скомпилировать новый шаблон, чтобы 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
});