Цитата:
сделал вывод через 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 |
Вот нагородили-то )
Естесно он будет undefined, тк ваш запрос не успевает завершиться, а вы уже запрашиваете результат в следующей строке. |
чудеса, да и только. можете кинуть ваше творение полностью, хочу посмотреть
|
WorM32,
точняк))) чет под вечер туплю |
WorM32,
Подскажите как сделать тогда. |
как то так))
$.getJSON('json/test.json', function(data) {
that.loadedJSON = data;
that.prepareJSON();
}).fail(function() {
|
anton.fed,
уже подсказали один из вариантов) |
Цитата:
Но как теперь мне обращаться к объекту если он не успевает загрузить JSON тут например консоль покажет undefined , т.к. json еще не загрузился. x = new myobj(); x.loadJSON(); console.log(JSON.stringify(x.xdata,null,' ')); /**/ как тут быть? |
можно сделать функцию обратного вызова:
....
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
});
|
Если так:
x.loadJSON(function (obj, success) {
//actions
});
то получается x.loadJSON - это можно сказать инициалиация объекта, все действия с объектом загруженным из json я смогу делать только внутри этой функции? |
| Часовой пояс GMT +3, время: 06:37. |