gpt4 book ai didi

ajax - 在 AJAX 调用后将新的 DOM 元素绑定(bind)到 View 模型

转载 作者:行者123 更新时间:2023-12-01 10:01:39 25 4
gpt4 key购买 nike

我在将新的 DOM 元素绑定(bind)到我的 View 模型时遇到了麻烦。此元素位于使用 AJAX 调用加载的部分 View 中(请参阅下面的 customizeQuote 函数)。

$(function () {
var mvcModel = ko.mapping.fromJS(initialData);

function QuoteViewModel() {
var self = this;

self.customizeQuote = function (quote) {
self.selectedQuote = quote;

//remove the disable attribute on all form controls before serializing data
$(".step").each(function () {
$(this).find('input, select').removeAttr('disabled');
});

//convert form data to an object
var formData = $('#etape').toObject();

$.ajax("getSelectedQuote", {
data: ko.toJSON({ model: self.selectedQuote, model1: formData }),

type: "post", contentType: "application/json",
success: function (result) {

$("#custom").html(result);
$("#etape").formwizard("show", "customize");
ko.applyBindings(self.selectedQuote, $("#covers"));

}
});
}
}

var myViewModel = new QuoteViewModel();
var g = ko.mapping.fromJS(myViewModel, mvcModel);
ko.applyBindings(g);
});

这是局部 View html:

@model QuoteViewModel
<table id="covers">
<thead>
<tr>
<th>
ProductName
</th>
</tr>
</thead>
<tbody data-bind="foreach: CoverQuotesViewModel">
<tr>
<td>
<input data-bind="value: ProductName" />
</td>
</tr>
</tbody>
</table>

线路:

ko.applyBindings(self.selectedQuote, $("#covers"));

触发错误:

"ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node"

我对 knockout 还很陌生,我看不出自己做错了什么。有什么想法吗?

最佳答案

$("#covers") 虽然不是 DOM 节点,但它是一个 jQuery 对象。也许尝试使用它:

ko.applyBindings(self.selectedQuote, $("#covers")[0]);

[0]会获取jquery对象中选择器的第一个匹配元素。

关于ajax - 在 AJAX 调用后将新的 DOM 元素绑定(bind)到 View 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15334179/

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