结合两个不同文件的淘汰模型

问题描述 投票:-1回答:1

由于网站的构建方式(Joomla),HTML从不同的位置被拉到一起,并且JavaScript以一种不容易预测的顺序添加到头部。

我有一个包含绑定的HTML和js文件以及一个用于呈现通用警报框的Knockout模型。然后我有其他其他文件有自己的Knockout模型和绑定,我希望能够弹出警报框。

我正在考虑ko.utils.extend,并使用弹出框模型扩展每个页面模型,但我的实际案例比描述的更复杂,我不能确定两个JavaScript文件(页面KO模型和弹出KO模型)将出现在哪个顺序头部。

如果您不知道将这两个模型放入文档头的顺序,有没有办法获取两个KO模型并绑定它们?

knockout.js
1个回答
1
投票

ko.applyBindings可以接收第二个参数,即dom节点将应用绑定。

因此,您可以在两个不同的dom节点中绑定两个不同的模型。

var viewModel1=function (){
}

var viewModel2=function(){
}

ko.applyBindings(viewModel1,document.getElementById("div1"));
ko.applyBindings(viewModel2,document.getElementById("div2"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>


<div id=div1>
</div>

<div id=div2>
</div>

如果多次应用绑定dom节点,则会出现错误。

© www.soinside.com 2019 - 2024. All rights reserved.