KnockoutJS: Mit 'html' Bindung, neue Elemente nicht bindend

8

Ich habe ein View-Modell, das ein ko.observable enthält, das den Inhalt eines div repräsentiert, also:

%Vor%

Zu einem späteren Zeitpunkt aktualisiere ich diesen Inhalt mit einem AJAX-Aufruf, und ich habe ein div mit folgender Bindung:

%Vor%

Der für "content" zurückgegebene HTML-Code hat eigene Datenbindungen, und dies ist das Problem: Keine dieser Bindungen wird analysiert. Laut Knockout und jeder Quelle, die ich gelesen habe, soll das passieren. Bei Verwendung der "html" -Bindung soll KO intelligent genug sein, um eine erneute Bindung durchzuführen.

Ist das ein Bug in KO 2.2.0 (die Version, mit der ich gerade in dieser Sekunde feststecke), oder interpretiere ich falsch, wie der HTML-Binding-Handler funktioniert? Und bevor jemand fragt, wird in diesem Fall kein applyBindings funktionieren, weil der Container eine HTML-Bindung verwendet, die applyBindings annimmt, dass sie die Neubindung selbst übernehmen soll (ich habe dies bestätigt, indem ich in den KO-Code zurückgetreten bin) / p>     

Matt Holmes 19.07.2013, 22:50
quelle

1 Antwort

12

UPDATE:

Dies ist die endgültige Version meiner benutzerdefinierten Bindung. Dies funktioniert jetzt automatisch, bindet nicht doppelt und funktioniert genauso wie die HTML-Bindung, ist aber dynamischer.

%Vor%

Bitte beachten Sie bitte , dass dies nicht sicher sein kann, wenn Sie die Quelle Ihres HTML nicht kennen. Sehr, sehr unsicher. Wenn unsanitisierte Benutzereingaben es jemals in Ihren HTML-Code schaffen, könnte dies eine große Sicherheitslücke darstellen. Achten Sie also auf Cross-Site-Scripting-Angriffe.

    
Matt Holmes 19.07.2013, 22:59
quelle

Tags und Links