나는 ajax를 통해 서버에서 데이터를로드하고이 정보를 모델에 출력하는 녹아웃 스크립트를 가지고있다. 모든 것을 단순화하기 위해, 내 모델은 다음과 같습니다ajax 호출에서 요청 된 데이터를 수정할 수있는 방법이 있습니까?
function ArticleViewModel() {
var self = this;
this.articleInfo = ko.observable();
this.getArticle = function(id) {
$.get("/router.php", { articleId: id }, self.articleInfo, 'json');
};
};
모든 (내보기는 서버에서 정보로 채워집니다) 잘 작동합니다. 하지만 필요한 것은이 정보를 수정하는 것입니다 (예를 들어 타임 스탬프에서 사람이 읽을 수있는 형식으로 데이터 변경).
이것을 이해하는 한 가지 방법은 knockout computed observables입니다. 그러나 여기에 타임 스탬프가 필요 없기 때문에이 작업을 수행하는 이유가 표시되지 않습니다. 업데이트 후에 데이터를 한 번만 변경하고 사용할 수 있습니다 (if 나는 틀렸다. 나는 왜 계산 된 관측 자료로 원하는 것을 성취 할 수 있는지, 왜 어떻게 듣는지 기쁘게 생각한다.) 그래서
내가 (모든 것이 동일하지만, AJAX 호출이 콜백가) 다음과 같은 방법으로 아약스 요청에 내 데이터를 변경하려고 :
$.get("/router.php", { type : 'mail' }, function(i){
var d = new Date(i.date);
self.articleInfo = {
date: d.toString(),
title: i.title
};
}, 'json');
내가 페이지에 오류가없는,하지만를 정보가 나타납니다. 다른 페이지로 이동하면 경고 메시지가 표시됩니다. TypeError {stack: (...), message: "500 Error get /#Home Property 'articleInfo' of object #<ArticleViewModel> is not a function"}
무엇이 잘못 되었나요?
죄송 합니다만, selectedMailData가 아닌 articleInfo입니다. 그리고 필사적 인 코딩 작업을 몇 시간 만 안겨 줬습니다. 고맙습니다. –