如何将 Knockout 绑定应用于 <html> 元素?

How can a Knockout binding be applied to the <html> element?

我想使用自定义 Knockout 绑定处理程序在根元素上动态设置字体大小,该处理程序根据浏览器的宽度进行计算 window。

当我尝试应用绑定时,似乎没有任何反应,所以我尝试应用一个简单的 css 绑定:

<html data-bind="css: { bindinghandlertest: true }">

但是绑定处理程序似乎没有添加 class。

问题:KO 绑定只能应用于 <body> 及其子项吗?

注意:我正在初始化整个页面上的所有绑定,只需在 DOM 就绪时调用 ko.applyBindings(); 一次,完全没有任何参数。

您可以将绑定应用于特定的 html 元素,如 here

所述

具体来说:

Optionally, you can pass a second parameter to define which part of the document you want to search for data-bind attributes. For example, ko.applyBindings(myViewModel, document.getElementById('someElementId'))

在你的情况下,他们可以打电话给

ko.applyBindings(myVM, document.documentElement);

默认情况下,DOM节点是正文,从source:

可以看出

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