我一直在关注本教程http://tinyurl.com/327p325,它一直很棒,直到我无法让他的代码工作。我得到了与静态项目一起使用的列表,但我无法让它与 json 项目一起使用。我试图用我真正想要它做的事情来简化它,以尝试调试问题所在(如果有人能告诉我如何查看很棒的 Mojo 日志)
在教程中,他必须使用 yahoo 服务将站点转换为 json 数据,而我要与之交互的站点已经生成了 json 数据,所以这就是我所拥有的
PageAssistant.prototype.setup = function() {
this.myListModel = { items : [] };
this.myListAttr = {
itemTemplate: "page/itemTemplate",
renderLimit: 20,
};
this.controller.setupWidget("MyList",this.myListAttr,this.myListModel);
this.controller.setupWidget("search_divSpinner", { spinnerSize : "large" }, { spinning: true } );
};
PageAssistant.prototype.activate = function(event) {
this.getData();
};
PageAssistant.prototype.getData = function () {
// the spinner doesn't show up at all
$("search_divScrim").show();
var url = "http://www.website.com/.json";
var request = new Ajax.Request(url, {
method: 'get',
asynchronous: true,
evalJSON: "false",
onSuccess: this.parseResult.bind(this),
on0: function (ajaxResponse) {
// connection failed, typically because the server is overloaded or has gone down since the page loaded
Mojo.Log.error("Connection failed");
},
onFailure: function(response) {
// Request failed (404, that sort of thing)
Mojo.Log.error("Request failed");
},
onException: function(request, ex) {
// An exception was thrown
Mojo.Log.error("Exception");
},
});
}
PageAssistant.prototype.parseResult = function (transport){
var newData = [];
var theStuff=transport.responseText;
try {
var json = theStuff.evalJSON();
}
catch(e) {
Mojo.Log.error(e);
}
// this is where I believe I am wrong
for (j=0;j < json.data.count;j++) {
var thread=json.data.children[j];
newData[j] = {
title: thread.data.author
};
}
this.myListModel["items"] = newData;
this.controller.modelChanged(this.myListModel , this);
$("search_divScrim").hide();
}
所以我评论说我相信我错了我只是想从这个 json 数据中得到标题
{ 种类:清单 数据: { 孩子们: [ { 种类:食物 数据: { 作者:食主 隐藏:假 标题:你应该吃这个 } }, // 然后用 kind: 和 data 重复
有人看到我哪里出错了吗?我想知道如何查看日志,因为我有日志事件,但不知道在哪里查看是否有任何事件被抛出。