亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 ViewModel 上的 Knockoutjs 綁定輸入

在 ViewModel 上的 Knockoutjs 綁定輸入

慕容森 2021-12-02 10:28:28
我有一個名為 CreateVM 的 Knockout.js ViewModel 包含其他 ViewModel - FrmAddGoodsVM。問題是當我將一些輸入綁定到 FrmAddGoodsVM 時,輸入將顯示 [object HTMLInputElement]。有人可以告訴我我錯過了什么嗎?我已將這些輸入綁定從 FrmAddGoodsVM 放到 CreateVM 中,并且運行良好。但我想從 FrmAddGoodsVM 綁定它們,不知道為什么它不起作用。索引.jsfunction 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>預期輸出:輸入元素將沒有值 [object HTMLInputElement]
查看完整描述

1 回答

?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

我不太確定發生了什么,但是您基本上在對象嵌套上相差甚遠。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.


查看完整回答
反對 回復 2021-12-02
  • 1 回答
  • 0 關注
  • 165 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號