这是我的代码:
$('#idapiNumber').focusout(function () {
var wellViewModel = function (APINumber, OperatorName) {
this.APINumber = ko.observable(APINumber);
this.OperatorName = ko.observable(OperatorName);
};
ko.applyBindings(new wellViewModel("", ""));
var searchDoggrOPIAPI = "api/values";
$.getJSON(searchDoggrOPIAPI, function (data) { data = JSON.stringify(wellViewModel()) }, function (data, textStatus, jqXHR) { alert("Status: " + textStatus); });
});
</script>
这是我的页面:
<label for="idapiNumber">API Number</label>
<input id="idapiNumber" data-bind="value: APINumber" type="text" placeholder="API Number" class="form-control" />
<label for="OperatorName">Operator Name</label>
<input id="OperatorName" data-bind="value: OperatorName" type="text" class="form-control" />
这是我得到的错误:
无法弄清楚我收到此错误的原因。
答案 0 :(得分:0)
错误是:“您无法多次将绑定应用于同一元素”,这意味着您将多个viewModel
绑定到同一个DOM
{{1这是错的。这可能发生了,因为node
被多次触发。只需绑定focusout
一次即可。
您可以在应用绑定之前调用:viewModel
来验证问题:
ko.cleanNode($('#some-node')[0])
当然,您会将$('#idapiNumber').focusout(function () {
...
ko.cleanNode($('#some-node')[0]);
ko.applyBindings(new wellViewModel("", ""));
...
});
替换为真正的选择器。