10

我正在实施拖放指令。在放置时,我将元素的副本添加到我的 div 并将ng-click属性附加到它,如下所示:

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

例如,在控制器中我有

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

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

4

2 回答 2

8
copy.append('<button class="close" ng-click="abc()">&times;</button>');
$compile(copy)($scope);
于 2012-11-22T11:41:27.480 回答
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
});
于 2012-11-22T10:45:37.387 回答