2016-04-01 7 views
1

Ich versuche, eine Bindung im <html> Element der Website hinzuzufügen, und es scheint keine Wirkung zu haben.Knockout.js Bindung in <html>

Gibt es Einschränkungen bei der Anwendung von Bindungen in Elementen außerhalb des Rumpfelements?

<html xmlns="http://www.w3.org/1999/xhtml" data-bind="css: {'visible-menu' : $root.panels.visibleMenu }"> 

Antwort

3

applyBindingsdefaults to using <body> wenn Sie nicht über einen Wurzelknoten passieren:

rootNode = rootNode || window.document.body; // Make "rootNode" parameter optional 

Wenn Sie die <html> Knoten passieren, sollte es wie erwartet funktionieren. Eine Möglichkeit, dies zu tun, wenn Sie jQuery verwenden, ist die Verwendung the :root selector:

ko.applyBindings(viewModel, $(':root').get(0)); 

Oder mit dem Tag-Namen:

ko.applyBindings(viewModel, document.getElementsByTagName('html')[0]); 
+0

Wissen Sie, ob das macht die Website anfälliger in irgendeiner Weise? – Alvaro

Verwandte Themen