gpt4 book ai didi

Javascript knockout 绑定(bind)嵌套对象不起作用

转载 作者:太空狗 更新时间:2023-10-29 14:53:31 26 4
gpt4 key购买 nike

我对使用 knockout javascript 库还比较陌生。我在获取作为另一个对象的对象的可观察属性时遇到问题。这是我的代码:

function Customer(id) {
var self = this;

self.customer_id = ko.observable(id);
self.custnum = -1;

self.busname = ko.observable("");
self.address = "";
self.city = "";
self.state_id = "";
self.zipcode = "";
self.cnt_sal_id = "";
self.cnt_first_name = "";
self.cnt_last_name = "";
self.cnt_title = "";

//alert("customer: " + self.customer_id());

}


var CustomerEntryViewModel = function(date) {
var self = this;

self.last_update = ko.observable(date);
self.customer = ko.observable(new Customer(""));

self.addCustomer = function (id) {
var c = new Customer(id);
self.customer = c;
alert("New id: " + self.customer.customer_id() + " num: " + c.custnum);
}

self.customerSearch = function () {
}

self.editCustomer = function (customer_id) {
}

self.save = function(customer) {
}
}

如何绑定(bind)到 Customer 对象中的属性。我尝试像这样使用典型的 javascript 点符号:customer.customer_id

这是绑定(bind)数据的html:

<div class="field-input" style="margin-bottom:10px;">
<input type="text" id="customer_id" style="width:100%;"
data-bind="jqxInput: { placeHolder: 'Customer #', value:
customer().customer_id, height: 21, width: 208,
minLength: 1, disabled: true }"/>
</div>

最佳答案

由于 customer 是一个可观察对象,您必须在绑定(bind)中展开它。所以它会是这样的:

<div data-bind="text: customer().address"></div>

同样,这个

alert("New id: " + self.customer.customer_id() + " num: " + c.custnum);

会是

alert("New id: " + self.customer().customer_id() + " num: " + c.custnum);
// ^ unrolled

关于Javascript knockout 绑定(bind)嵌套对象不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20503805/

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