繁体   English   中英

ViewModel 上的 Knockoutjs 绑定输入

[英]Knockoutjs binding input on ViewModel

我有一个名为 CreateVM 的 knockout.js ViewModel 包含其他 ViewModel - FrmAddGoodsVM。 问题是当我将一些输入绑定到 FrmAddGoodsVM 时,输入将显示 [object HTMLInputElement]。 有人可以告诉我我错过了什么吗?

我已经将这些输入绑定从 FrmAddGoodsVM 放到了 CreateVM 中,它运行良好。 但我想从 FrmAddGoodsVM 绑定它们,不知道为什么它不起作用。

index.js

function FrmAddGoodsVM() {
    let self = this; 
    self.frmName = ko.observable(null);
    self.frmAddress = ko.observable(null);
}

function CreateVM() {
    let self = this;
    ...
    self.FrmAddGoodsVM = new FrmAddGoodsVM();
}

$(document).ready(function() {
    let createVM = new CreateVM();
    ko.applyBindings(createVM, document.getElementById('create'))
})

索引.html

<form role="form">
    <input id="frmName" data-bind="value: frmName"/>
    <input id="frmName" data-bind="value: frmAddress"/>
</form>

预期的 output:输入元素将没有值 [object HTMLInputElement]

我不太确定发生了什么,但你的 object 嵌套基本上是差了一个。 Create VM 具有一个属性,即真正的 VM。 所以你只需要调整你的绑定和多田!

 function FrmAddGoodsVM() { let self = this; self.frmName = ko.observable(""); self.frmAddress = ko.observable(""); } function CreateVM() { let self = this; self.FrmAddGoodsVM = new FrmAddGoodsVM(); } let createVM = new CreateVM(); ko.applyBindings(createVM.FrmAddGoodsVM)
 <script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script> <form role="form"> <input id="frmName" data-bind="value: frmName"/> <input id="frmName" data-bind="value: frmAddress"/> </form>

附带说明一下,将 jquery 引入单个功能是非常浪费的,尤其是当淘汰赛在 dom 末尾加载时很好,或者您可以只使用香草版本OnContentReady

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM