简体   繁体   English

AngularJS添加ng-click in指令

[英]AngularJS adding ng-click in directive

I'm implementing drag'n'drop directive. 我正在实现拖放指令。 On drop I add a copy of element to my div and append ng-click attribute to it like this: 在放下时,我将元素的副本添加到div中,并向其附加ng-click属性,如下所示:

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

For example, in controller I have 例如,在控制器中

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

And it doesn't work. 而且它不起作用。 If I add this button on page manually it works fine. 如果我在页面上手动添加此按钮,则效果很好。

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

I guess that you do need to compile your new template so that AngularJS recognizes it. 我猜您确实需要编译新模板,以便AngularJS识别它。 The docs give you a good example for how to use ng.$compile . 该文档为您提供了有关如何使用ng.$compile的好示例。

Cloning can be done then like so: 然后可以像这样进行克隆:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM