이것은 아마도 기본적인 질문이지만 다음 뷰 모델에서는 ajax 호출에서 self.userData를 채우고 있습니다. 이 정보를 UI에 표시하고 싶습니다. 'with'바인딩을 사용하는 방법을 생각했습니다. 그러나 self.userData는 ajax 함수가 호출 될 때까지 비어 있으므로 바인딩을 사용하여 오류가 발생합니다.binding이있는 knockout.js
HTML
<div data-bind="with: userData">
<div data-bind="text: userId"></div>
...
</div>
모델 빈 관찰과
var viewModel = function() {
var self = this;
self.userData = {};
self.login = function(data) {
var postData = { ..trimmed out.. };
$.ajax({
type: "POST",
url: "myService",
data: postData
}).done(function (data, status) {
self.userData = ko.mapping.fromJS(data, userData);
console.log(self.userData);
}).fail(function (data, status) {
alert('Could Not Login');
});
}
};
ko.applyBindings(new viewModel());
이 경우는 (그리고) 반환 된 데이터에 따라 될 수 있지만 경우, 그는 또한 바인딩 *로 *를 교환해야합니다 * foreach * 바인딩, HTML 스 니펫의 * userData * 뒤에 오는 바인딩을 기반으로합니다. – Grim
바로 거기에 있습니다 @ 그램. 좋은 장소. –