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 に答える