2012-11-22 3 views
10

私はdrag'n'drop指令を実装しています。ドロップで、私は私のdivに要素のコピーを追加し、このようにそれにng-click属性を追加します。たとえば指令でng-clickを追加するAngularJS

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

、コントローラに私が

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

を持っており、それは動作しません。手動でこのボタンを追加すると、正常に動作します。

答えて

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 
}); 
8
copy.append('<button class="close" ng-click="abc()">&times;</button>'); 
$compile(copy)($scope);