3
새로운 DOM 요소를 내 viewmodel에 바인딩하는 데 문제가 있습니다. 이 요소는 AJAX 호출을 사용하여로드 된 부분 뷰에 있습니다 (아래의 customizeQuote 함수 참조).AJAX 호출 후 새로운 DOM 요소를 viewmodel에 바인딩
$(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);
});
다음은 부분보기 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: first parameter should be your view model; second parameter should be a DOM node"
내가 녹아웃 상당히 새로운 그리고 난 :
ko.applyBindings(self.selectedQuote, $("#covers"));
오류를 트리거 내가 뭘 잘못하고 있는지 보지 마. 어떤 생각?
바로 당신입니다! 이것을 지적 해 주셔서 감사합니다, 지금 작동 중입니다. – Sam