AngularJS - ng-bind-html-unsafe und ng-model Probleme

8

Ich habe die folgende Zeile in meinem HTML:

<div ng-bind-html-unsafe="departmentConfig" class="control-group"></div>

und ich benutze $resource get, um den HTML-Code abzurufen, um den HTML-Code $scope.departmentConfig zuzuordnen, und dann wird die Ansicht perfekt aktualisiert. Der HTML-Code, der $scope.departmentConfig zugeordnet ist, enthält Formularelemente mit ng-model -Attributen, aber wenn ich die Werte in diesen Eingabeelementen ändere, wird das $scope -Modell überhaupt nicht aktualisiert.

Dies habe ich versucht, basierend auf vielen anderen Internet-Posts, und es funktioniert nicht:

%Vor%

Ich habe sogar einige Beispiele gesehen, in denen dies zu funktionieren scheint, aber meine ist es nicht. Rufe ich Bootstrap zu früh an? Ich habe auch versucht, ein $watch auf $scope.departmentConfig so zu setzen:

%Vor%

aber es hat auch nicht funktioniert. Ich wette, es gibt eine einfache Erklärung dafür, ich kann einfach nicht die Eingabeelemente mit ng-model erhalten, die nach dem Kompilieren der Seite geladen werden, um an das Modell gebunden zu werden. Jede Hilfe wird geschätzt, dies ist die letzte Funktion, die ich brauche, um auf meiner Seite zu arbeiten. Lassen Sie es mich wissen, wenn Sie weitere Informationen über meine Konfiguration benötigen.

Also, einfach gesagt, wie kann ich einen Abschnitt des DOM neu kompilieren, nachdem ich weiß, dass es geladen wurde?

AKTUALISIEREN

Hier ist ein Artikel, der beschreibt, was ich gerne tun würde: Ссылка . Sie werden feststellen, dass die Eigenschaften zwei und drei das Modell nicht aktualisieren, und ich rufe Bootstrap auf dem äußeren div auf, in der Hoffnung, dass es die in der Modellbindung einschließen wird. Dies ist das erste Mal, dass ich auf jsfiddle gepostet habe, bitte lass es mich wissen, wenn du das Beispiel nicht sehen kannst.

    
j.snyder 02.07.2012, 15:00
quelle

1 Antwort

13

ng-bind-html wird für normales HTML erstellt und kompiliert keine neuen eckigen Elemente.

Sie werden den $ Kompilierungsdienst verwenden müssen.

So würden Sie Ihr aktuelles Beispiel bearbeiten: Ссылка . Aber dieser Weg endet schlecht, weil Sie DOM-Manipulation in Ihrem Controller machen müssen.

Sie müssen nur eine Direktive erstellen, die im Grunde genommen das tut, was Sie mit ng-bind-html tun sollten: Ссылка

    
Andrew Joslin 03.07.2012, 15:38
quelle

Tags und Links