방금 HotTowel을 시작했고 매우 인상적이었습니다. 나는 녹아웃 바인딩과 함께 사용하는 법을 배운다. 내가 3 페이지와 웹 사이트가HotTowel : 페이지를 탐색 할 때 Viewmodel이 매핑을 잃습니다.
: 홈, 약을, 항아리
항아리에 내가 가진 : 는 여기에 내가 직면하고있어 문제의
define(['services/logger', 'repo/jarrepo'], function (logger, repo) {
var Jar = function() {
this.Id = ko.observable(0);
this.Name = ko.observable('');
}
this.jars = ko.mapping.fromJS([]);
var vm = {
title: ko.observable('JARS'),
jars: jars,
AddJar: function() {
this.jars.push(new Jar);
},
DeleteJar: function (jar) {
jars.destroy(jar);
},
activate: function() {
repo.getJars(this.jars);
return true;
}
};
return vm;
});
그리고보기에 내가 가진 :
<div data-bind="foreach: jars">
<label data-bind="text: name" />
<a href="#" data-bind="click $root.DeleteJar">Delete</a>
</div>
내 REPO 코드 :
$.getJSON("/api/jar/getjars", function (data) {
ko.mapping.fromJS(data, jars);
});
Jar 페이지에 있으면 제대로 작동합니다. 그러나 홈으로 이동하여 돌아 오면 코 매핑이 손실됩니다. 크롬 콘솔을 사용하여 확인하고 jar 배열을 확인하면 모든 요소가 속성에서 ko.mapping
노드를 잃어 버렸습니다. 따라서 항아리를 삭제할 수는 없지만 새로운 항아리를 추가 할 수는 있습니다.
누구든지 내비게이션 후 개체를 다시 매핑하는 방법을 알아낼 수 있습니까? 감사합니다. .
을 데이터가로드 되었습니까? – SB2055
다음과 같이하면됩니다 : var promise = $ .Deferred(); someStuff()을 (함수() { \t promise.resolve(); }).. 실패 (함수() { \t promise.reject(); }); return promise; –