Javascript 敲除JS将视图模型绑定到多个分布式元素ID
这与我的问题类似,但解决方案似乎是在附近创建一个公共父级。就通用性而言,我唯一能做的就是绑定到Javascript 敲除JS将视图模型绑定到多个分布式元素ID,javascript,knockout.js,Javascript,Knockout.js,这与我的问题类似,但解决方案似乎是在附近创建一个公共父级。就通用性而言,我唯一能做的就是绑定到文档或类似的东西,但这样做会破坏目的: 建议像这样将单个视图模型实例绑定到多个ID。我试过了,在一些简单的情况下也能奏效: ko.applyBindings(newVm, document.getElementById('grapes')); ko.applyBindings(newVm, document.getElementById('apples')); 我这样做的原因是,我希望使用内置功能绑
文档
或类似的东西,但这样做会破坏目的:
建议像这样将单个视图模型实例绑定到多个ID。我试过了,在一些简单的情况下也能奏效:
ko.applyBindings(newVm, document.getElementById('grapes'));
ko.applyBindings(newVm, document.getElementById('apples'));
我这样做的原因是,我希望使用内置功能绑定到单个页面应用程序上的特定元素,但这些元素没有公共父元素
应用绑定时,是否创建了视图模型实例的任何副本,从而导致该实例占用内存
这不是将多个视图模型转换为单个页面视图,也不是将多个视图模型转换为同一元素。一个示例用例是serverConnection
视图模型,其中连接和断开连接按钮位于工具栏的顶部,而连接状态位于状态栏的底部
是否建议将单个视图模型实例绑定到多个ID
不,不推荐。但也不一定是错的
建议的方法是将与
绑定一起使用。例如:
JS
HTML
连接
断开
谢谢你的例子。所以带有
绑定作用域的从全局级别开始,我想您可以嵌套它们以获得更具体的信息?我想这就是我一直在寻找的。没错!您可以在中阅读更多关于它的信息
const serverConnection = new ServerConnection();
const app = new App();
ko.applyBindings({ app, serverConnection });
<body>
<header data-bind="with: serverConnection">
<button data-bind="click: connect">Connect</button>
<button data-bind="click: disconnect">Disconnect</button>
</header>
<article data-bind="with: app">
...
</article>
<footer data-bind="with: serverConnection">
<div data-bind="text: statusCode"></div>
</footer>
</body>