Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 22.08.2014, 15:48
Новичок на форуме
Отправить личное сообщение для anton.fed Посмотреть профиль Найти все сообщения от anton.fed
 
Регистрация: 22.08.2014
Сообщений: 9

Сообщение от skrudjmakdak
хотя подождите, пропишите еще так:
1 $.getJSON('json/test.json', function(data) {
2 console.log(data);
3 that.loadedJSON = data;
4 }).fail(function() {


имхо не хватает метода done
в консоль вывелся json объект

сделал вывод через done
myobj.prototype.loadJSON = function() 
{
	var that = this;
	$.getJSON('json/test.json')
	.done(function(data){
		console.log(data);
		that.loadedJSON = data;
	})
	.fail(function() {
		console.log("Ошибка обработки JSON")
	});

	//return this.loadedJSON;
}

Все то же самое - ошибка в той же строке : Uncaught TypeError: Cannot read property 'xdata' of undefined

Последний раз редактировалось anton.fed, 22.08.2014 в 15:51.
Ответить с цитированием
  #12 (permalink)  
Старый 22.08.2014, 15:50
Профессор
Отправить личное сообщение для WorM32 Посмотреть профиль Найти все сообщения от WorM32
 
Регистрация: 11.02.2014
Сообщений: 303

Вот нагородили-то )

Естесно он будет undefined, тк ваш запрос не успевает завершиться, а вы уже запрашиваете результат в следующей строке.
Ответить с цитированием
  #13 (permalink)  
Старый 22.08.2014, 15:51
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

чудеса, да и только. можете кинуть ваше творение полностью, хочу посмотреть
Ответить с цитированием
  #14 (permalink)  
Старый 22.08.2014, 15:52
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

WorM32,
точняк))) чет под вечер туплю
Ответить с цитированием
  #15 (permalink)  
Старый 22.08.2014, 15:52
Новичок на форуме
Отправить личное сообщение для anton.fed Посмотреть профиль Найти все сообщения от anton.fed
 
Регистрация: 22.08.2014
Сообщений: 9

WorM32,
Подскажите как сделать тогда.
Ответить с цитированием
  #16 (permalink)  
Старый 22.08.2014, 15:56
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

как то так))
$.getJSON('json/test.json', function(data) {
        that.loadedJSON = data;
that.prepareJSON();
    }).fail(function() {
Ответить с цитированием
  #17 (permalink)  
Старый 22.08.2014, 16:01
Профессор
Отправить личное сообщение для WorM32 Посмотреть профиль Найти все сообщения от WorM32
 
Регистрация: 11.02.2014
Сообщений: 303

anton.fed,
уже подсказали один из вариантов)
Ответить с цитированием
  #18 (permalink)  
Старый 22.08.2014, 16:18
Новичок на форуме
Отправить личное сообщение для anton.fed Посмотреть профиль Найти все сообщения от anton.fed
 
Регистрация: 22.08.2014
Сообщений: 9

Сообщение от skrudjmakdak Посмотреть сообщение
как то так))
$.getJSON('json/test.json', function(data) {
        that.loadedJSON = data;
that.prepareJSON();
    }).fail(function() {
да так работает Спасибо!
Но как теперь мне обращаться к объекту если он не успевает загрузить JSON
тут например консоль покажет undefined , т.к. json еще не загрузился.
x = new myobj();
x.loadJSON();
console.log(JSON.stringify(x.xdata,null,'  '));
/**/


как тут быть?

Последний раз редактировалось anton.fed, 22.08.2014 в 16:20.
Ответить с цитированием
  #19 (permalink)  
Старый 22.08.2014, 16:23
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

можно сделать функцию обратного вызова:
....
myobj.prototype.loadJSON = function(callback) 
{
	var that = this;
	$.getJSON('json/test.json', function(data) {
		that.loadedJSON = data;
		that.prepareJSON();
if (typeof callback == 'function')
	callback(that, true);
	}).fail(function() {
		console.log("Ошибка JSON");
if (typeof callback == 'function')
	callback(that, false);
	});

	return this.loadedJSON;
}
......
x = new ft();
x.loadJSON(function (obj, success) {
//actions
});
Ответить с цитированием
  #20 (permalink)  
Старый 22.08.2014, 17:02
Новичок на форуме
Отправить личное сообщение для anton.fed Посмотреть профиль Найти все сообщения от anton.fed
 
Регистрация: 22.08.2014
Сообщений: 9

Если так:
x.loadJSON(function (obj, success) {
//actions
});

то получается x.loadJSON - это можно сказать инициалиация объекта, все действия с объектом загруженным из json я смогу делать только внутри этой функции?

Последний раз редактировалось anton.fed, 22.08.2014 в 17:07.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Cannot read property 'items' of undefined vikvikst474 ExtJS 2 09.01.2013 16:32
Ошибка Uncaught TypeError: Cannot read property 'elements' of undefined Allality Общие вопросы Javascript 14 29.07.2012 18:35
Ext.data.Record.create - Uncaught TypeError: Cannot read property 'items' of undefine potkin ExtJS 2 01.07.2012 23:29
Cannot read property 'items' of undefined khusamov ExtJS 0 11.05.2012 04:33
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34