AngularJS在指令中添加ng-click

Chr*_*ruS 10 javascript jquery directive angularjs

我正在实施drag'n'drop指令.在drop上我将一个元素的副本添加到我的div并将ng-click属性添加到它,如下所示:

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

例如,在控制器中我有

$scope.abc = function () {
    alert('Hello!');
}
Run Code Online (Sandbox Code Playgroud)

它不起作用.如果我手动在页面上添加此按钮,它可以正常工作.

Chr*_*ney 8

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


F L*_*has 0

我猜你确实需要编译新模板以便 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
});
Run Code Online (Sandbox Code Playgroud)