/ / AngularJS - Direktive aus dem Controller hinzufügen - anglejs, slickgrid

AngularJS - Hinzufügen einer Direktive aus dem Controller - angularjs, slickgrid

Ich habe folgende Direktive definiert:

app.directive("copyExpenditure", function(){
return {
restrict: "A",
scope: true,
template: "<button ng-click="copyExpenditure()">click me</button>"
}
});

Wenn ich diese Direktive direkt in die HTML-Datei einfüge, funktioniert sie wie erwartet.

<div copy-expenditure></div>

Jetzt erstelle ich ein Raster aus einem Controller heraus und möchte der copyExpenditure-Direktive jeder Zeile dynamisch hinzufügen. Für diese Aufgabe benutze ich Slickgrid und ein benutzerdefinierter Formatierer.

var LinkFormatter = function (row, cell, value, columnDef, dataContext) {
var tag = "<div copy-expenditure></div>";
return tag;
}

Es scheint jedoch, dass dieser benutzerdefinierte Formatierer nicht als Direktive, sondern nur als HTMl gerendert wird. Irgendeine Idee, was zu tun ist? Mein Ziel ist es nur, eine Scope-Funktion mit aufzurufen ng-click und ein von der LinkFormatter.

Antworten:

0 für die Antwort № 1

Du solltest tun:

$compile(angular.element("<div copy-expenditure></div>"))($scope);

und wenn Sie einige Werte vom Gültigkeitsbereich übergeben haben, tun Sie dies nach dem Kompilieren:

$scope.$digest();