2012-05-15 2 views
0

Пожалуйста, проверьте его здесь: http://jsfiddle.net/9VaW2/1/как сделать данные доступными вне

Я хочу jData быть доступны за пределами

$http({method: 'POST', url: '/someurl'}). 
    success(function(data, status, headers, config) { 
    var jData = data; 
    }). 
    error(function(data, status, headers, config) { 
    }); 

Но когда я делаю это

$view.availableData = { 
       cols:{ID:'ID', Date:'Date'}, 
       rows:{data:jData}, 
       options:{} 
      }; 

Это дает мне эту ошибку

ReferenceError: jData is not defined 

EDIT обновление скрипки

http://jsfiddle.net/9VaW2/3/ 

** Я думаю, я нашел решение, чтобы сделать ..async syncronus вызова: ложный. это работает. Я думаю, что страница загружалась быстрее, чем возвращались данные ... интересно, есть ли у кого-то лучшее решение **

+0

даже если вы удалите «вар» перед jData, так что это будет глобальная переменная не будет, вероятно, установить, прежде чем вы хотите использовать его ... – Gavriel

ответ

1

Просто укажите глобальную переменную.

var jData; 

$http({method: 'POST', url: '/someurl'}). 
    success(function(data, status, headers, config) { 
     jData = data; 
    }). 
    error(function(data, status, headers, config) { 
    }); 

$view.availableData = { 
    cols:{ID:'ID', Date:'Date'}, 
    rows:{data:jData}, 
    options:{} 
}; 
+0

когда я console.log (jData). .. это дает мне undefined – Autolycus

+0

здесь обновляется http://jsfiddle.net/9VaW2/3/ – Autolycus

+0

@Autolycus, ваша демонстрация jsFiddle не работает на самом деле, вы можете ее исправить, или мы можем увидеть живой пример? – ocanal

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