gpt4 book ai didi

knockout.js - 如何使用 knockout 部分绑定(bind) html 元素

转载 作者:行者123 更新时间:2023-12-02 02:17:59 26 4
gpt4 key购买 nike

        <html>
<head>
<script language="javascript" src="knockout-2.0.0.js"></script>
<script language="javascript" src="knockout.mapping.js"></script>
</head>
<div id="divFilter">
Name <input type=text data-bind="value:NAME1"></input>
<br>
Address<input type=text data-bind="value:ADDRESS"></input>
<br>
DOB <input data-bind="value:DOB" id="DOB" name="DOB" type=text></input>
<br>
SSN <input data-bind="value:SSN" id="SSN" type=text></input>
</div>
</html>
<script>
var oVM_Summary=null;
var VM_Summary= function(name1,address)
{
this.NAME1=ko.observable(name1);
this.ADDRESS=ko.observable(address);
};
oVM_Summary=new VM_Summary('Jon','123 addr');
ko.applyBindings(oVM_Summary);
</script>

当代码被执行时,DOB 和 SSN 显示 [object HTMLInputElement] 问题:- 如何避免绑定(bind) DOB 和 SSN。

    Thanks in advance...

最佳答案

根据您的修改更新:

如果您的 View 模型不包含 DOBSSN 属性,则在尝试绑定(bind)时会出错。在您的情况下,这实际上并没有发生,因为在许多浏览器中,您可以通过窗口对象的 id 访问元素。因此,与其找不到您的属性,不如找到 window.DOBwindow.SSN,它们是输入元素。

如果您更改 ID 中的名称 DOBSSN,那么您将开始看到 KO 错误。您应该在您的 View 模型中定义它们,即使它们是空的。

根据您的评论更新:如果你想绑定(bind)到多个 View 模型,那么你需要做类似的事情:

  <div id="divFilter">
<div id="one">
Name <input type="text" data-bind="value:NAME1" />
<br/>
Address<input type="text" data-bind="value:ADDRESS" />
</div>
<div id="two">
DOB <input data-bind="value:DOB" id="DOB" name="DOB" type="text" />
<br />
SSN <input data-bind="value:SSN" id="SSN" type="text" />
</div>
</div>

applyBindings 调用看起来像:

ko.applyBindings(new VM_One(), document.getElementById("one"));
ko.applyBindings(new VM_Two(), document.getElementById("two"));

或者你可以这样做:

<div id="divFilter">
<div data-bind="with: one">
Name <input type="text" data-bind="value:NAME1" />
<br/>
Address<input type="text" data-bind="value:ADDRESS" />
</div>
<div data-bind="with: two">
DOB <input data-bind="value:DOB" id="DOB" name="DOB" type="text" />
<br />
SSN <input data-bind="value:SSN" id="SSN" type="text" />
</div>
</div>

JS 看起来像:

var viewModel = {
one: new VM_One(),
two: new VM_Two()
};

ko.applyBindings(viewModel);

关于knockout.js - 如何使用 knockout 部分绑定(bind) html 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9569762/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com