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

时间:2018-02-21 22:29:10

标签: knockout.js

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

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

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

如果您不知道这两个模型将被放入文档头的顺序,是否可以采用两个KO模型并绑定它们?

1 个答案:

答案 0 :(得分: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>
&#13;
&#13;
&#13;

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