2010-05-11 7 views
1

Я использую Dojo и делаю вызов AJAX классу JAVA и пытаюсь получить выход программы в поле Alert для клиента.Повторный вызов Dojo JSON всегда возвращает ошибку

  var showResult = function(result){ 
      console.log("Showing Result()"); 
      var store = new dojo.data.ItemFileReadStore({ data: result}); 
      console.dir(store); 

      store.fetch({ onItem: function(data) { alert("Hie"); }, 
          onError: function(error,request){ alert("ERROR");} 
      }); 

     }; 

Это мой код, showResult в основном является функцией обратного вызова из запроса xhr. Я могу увидеть console.dir (store), напечатанный на Firebug, но функция fetch всегда возвращает блок onError.

My store array имеет форму {info = "Test Message"}, и мне нужно получить «тестовое сообщение» и отобразить его в поле «Предупреждение». Любая помощь?

ответ

0

Если result - это всего лишь массив, вы должны использовать new dojo.data.ItemFileReadStore({data : {items : result}}) для создания магазина.

Например, result является [{info : "Test Message 1"}, {info : "Test Message 2"}], то код должен быть:

var store = new dojo.data.ItemFileReadStore({data : {items : result}}); 
store.fetch({ 
    onItem : function(item) { 
     alert(store.getValue(item, "info")); 
    }, 
    onError : function(error) { 
     alert("Error!"); 
    } 
}); 
+0

Спасибо за предложение конструктора. Это кажется идеальным! Несмотря на то, что я все еще получаю предупреждения об ошибках. Итак, onError запускается! Любые идеи? – Sunny

+0

Я думаю, причина в том, что у вас есть ошибка JavaScript в обработчике onItem, который запускает обработчик onError. Используйте простую логику в onItem сначала, чтобы убедиться, что хранилище создано правильно. Затем отлаживайте обработчик onItem, чтобы найти ошибки. –

0

попробовать store.fetch ({запроса: {информация: '*'}}, onItem: функция (данные) {оповещения («Hie»);}, onError: function (error, request) {alert ("ERROR");} });

, а также вы можете увидеть, если OnComplete: функция (элементы) {console.log (пункты);} работает вместо onItem, стоит попробовать.

Кроме того, консоль проиграет вашу ошибку, чтобы вы могли видеть, в чем проблема.

Некоторые другие вещи, которые вы храните, имеют идентификатор и набор меток?

Смежные вопросы