1

私はこのチュートリアル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データからタイトルを取得しようとしているだけです

{
    種類:出品
    データ: {
        子供: [
            {
                種類:食べ物
                データ: {
                    作者:フードマスター
                    非表示: false
                    タイトル:これは食べたほうがいい
                }
            }、
            // その後、kind: と data で繰り返されます

私がどこで間違ったのか誰にもわかりますか?ログイベントがあるので、ログを表示する方法を知りたいのですが、それらのいずれかがスローされているかどうかを確認する場所がわかりません。

4

1 に答える 1

1

Mojoログを表示する場合は、ターミナル(または使用しているコマンドラインインターフェイス)を開き、palm-log com.example.appcom.example.appをappinfo.jsonファイルで定義したアプリIDに置き換えて入力します。

ログレベルを下げてすべてのログを表示するには、その前に入力する必要がpalm-log --system-log-level infoある場合があります(デフォルトでは、Mojo.Log.errorによって生成されたログのみが表示されます)

于 2011-01-26T16:14:41.497 に答える