我有一个淘汰脚本,它通过 ajax 从服务器加载数据并将此信息输出到模型中。如果为了简化一切,我的模型如下所示:
function ArticleViewModel() {
var self = this;
this.articleInfo = ko.observable();
this.getArticle = function(id) {
$.get("/router.php", { articleId: id }, self.articleInfo, 'json');
};
};
一切正常(我的视图中填充了来自服务器的信息)。但我需要修改这些信息(例如将数据从时间戳更改为人类可读格式)。
据我了解,实现它的一种方法是通过淘汰计算 observables,但我没有看到这样做的原因,因为我在这里永远不需要时间戳,我可以在更新后更改我的数据并使用它(如果我是错了,我很高兴听到为什么以及如何使用计算出的 observables 来实现我想要的)。
因此,我尝试通过以下方式更改有关 ajax 请求的数据(一切都相同,但 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"}
我究竟做错了什么?