Knockout.js 绑定在 <html>

Knockout.js binding in <html>

我试图在网站的 <html> 元素中添加绑定,但它似乎没有任何效果。

在 body 元素之外的元素中应用绑定是否有任何限制?

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

applyBindings defaults to using <body> 如果不传根节点:

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

如果您通过 <html> 节点,它应该会按预期工作。如果您使用 jQuery,一种方法是使用 the :root selector:

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

或按标签名称:

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