Ich baue gerade eine Chrome-Erweiterung. Die Richtlinie von Chrome besagt, dass Inline-JS-Event-Handler nicht erlaubt sind. Daher suche ich nach einer Möglichkeit, Event-Listener für meine ng-repeat-Elemente zu erstellen.So behandeln Sie Ereignisse in ng-Wiederholung ohne onclick
Ich habe versucht, nur die Ereignishandler basierend auf der Datenmenge zu generieren, die ich an ng-Wiederholung übergeben, und da ich die Vorlage kenne ich in der Lage, die entsprechenden IDs zu generieren, aber ich kann nicht scheinen um das Timing richtig einzustellen, so dass die Event-Listener erst gesetzt werden, nachdem ng-repeat das DOM aktualisiert hat.
Meine aktuellen Code ist unten:
app.controller('commentsCtrl', function($scope) {
$scope.data = datalayer;
//console.log($scope.data);
document.addEventListener('DOMContentLoaded', function(){
for (var i = 0; i < datalayer.comments.length; i++){
var id = datalayer.comments[i].id + "_replybutton";
console.log(id);
var div = document.getElementById(id);
console.log(div);
console.log(datalayer.sc);
}
});
});
x_replybutton ist die ID-Format für die Schaltfläche I für Hörer erstellen möchten. Derzeit kann ich den obigen Code in der Konsole gut funktionieren, sobald der wiederholte Abschnitt geladen wird, aber es wird nicht ausgeführt, wenn ich es dem Controller hinzufüge.
Alle Gedanken oder Vorschläge würden wirklich geschätzt werden.
Super Punkt über die Zeitüberschreitung danke. Der Datenlayer ist im Moment nur ein Platzhalter für einen xhr req, aber ich werde das auch berücksichtigen. –