05.08.2014, 04:52
|
Новичок на форуме
|
|
Регистрация: 05.08.2014
Сообщений: 2
|
|
Проблемы области видимости или рук
Такой вот код:
Excelsior.combo.Quotes = function(config) {
config = config || {};
var tickers=[];//Здесь пытаюсь объявить массив, пох..н что tickers=[]; window.tickers=[]; tickres=newArray;
Ext.Ajax.request({
url:'http://excprofit.ru/getticker',
success:function(response,options){
tickers = JSON.parse(response.responseText);
},
failure:function(response,options)
{
console.log("Error");
}
});
for (var i=0;i<tickers.length;i++)
{
alert(tickers[i].company);// Проверка, все гуд аякс работает, выдает все что надо
};
Ext.applyIf(config,{
store: new Ext.data.ArrayStore({
id: 0
,fields: ['unit','display']
,data: [
[1, tickers[0].company]//Uncaught TypeError: Cannot read property 'company' of undefined - И хоть ты сдохни
,[2, 'tick[0]']
,[3, 'Газпром (GAZP)']
,[4, 'ИнтерРАО (IRAO)']
,[5, 'Лукойл (LKOH)']
,[6, 'МТС (MTSI)']
,[7, 'Роснефть (ROSN)']
,[8, 'НЛМК (NLMK)']
,[9, 'Новатэк (NVTK)']
,[10, 'Ростелеком (RTKM)']
,[11, 'Сбербанк (SBER3)']
,[12, 'Сбербанк-пр (SBERP3)']
,[13, 'Северсталь (CHMF)']
,[14, 'Сургутнефтегаз (CNGS)']
,[15, 'Сургутнефтегаз-пр (CNGSP)']
,[16, 'Татнефть (TATN3)']
,[17, 'Транснефть (TRNFP)']
,[18, 'Уркалий (URKA)']
,[19, 'ФСК ЕЭС (FSKE)']
,[20, 'Холдинг МРСК (HMRK)']
,[21, 'РусГидро (FGGK)']
]
})
,mode: 'local'
,displayField: 'display'
,valueField: 'unit'
});
Excelsior.combo.Quotes.superclass.constructor.call (this,config);
};
Так что люди добрые плз хелп, хотя админиастрация просила не писать что нуб, да, полный, совсем не front-end программист
Предпринимал все что можно - бегал с бубном, бился об стену, пытался создавать новый массив промежуточный через = или slice, смотрел курсы Кантор Ильи - ничего не помогает. Третья ночь без сна. На форум пишу первый раз в жизни, так что простите если что не так.
|
|
05.08.2014, 07:05
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,589
|
|
Возможно так, хотя с Ext дела не имел.
Excelsior.combo.Quotes = function (config) {
config = config || {};
var tickers = []; //Здесь пытаюсь объявить массив, пох..н что tickers=[]; window.tickers=[]; tickres=newArray;
Ext.Ajax.request({
url: 'http://excprofit.ru/getticker',
success: function (response, options) {
tickers = JSON.parse(response.responseText);
Ext.applyIf(config, {
store: new Ext.data.ArrayStore({
id: 0,
fields: ['unit', 'display'],
data: [
[1, tickers[0].company] //Uncaught TypeError: Cannot read property 'company' of undefined - И хоть ты сдохни
, [2, 'tick[0]'],
[3, 'Газпром (GAZP)'],
[4, 'ИнтерРАО (IRAO)'],
[5, 'Лукойл (LKOH)'],
[6, 'МТС (MTSI)'],
[7, 'Роснефть (ROSN)'],
[8, 'НЛМК (NLMK)'],
[9, 'Новатэк (NVTK)'],
[10, 'Ростелеком (RTKM)'],
[11, 'Сбербанк (SBER3)'],
[12, 'Сбербанк-пр (SBERP3)'],
[13, 'Северсталь (CHMF)'],
[14, 'Сургутнефтегаз (CNGS)'],
[15, 'Сургутнефтегаз-пр (CNGSP)'],
[16, 'Татнефть (TATN3)'],
[17, 'Транснефть (TRNFP)'],
[18, 'Уркалий (URKA)'],
[19, 'ФСК ЕЭС (FSKE)'],
[20, 'Холдинг МРСК (HMRK)'],
[21, 'РусГидро (FGGK)']
]
}),
mode: 'local',
displayField: 'display',
valueField: 'unit'
});
Excelsior.combo.Quotes.superclass.constructor.call(this, config);
},
failure: function (response, options) {
console.log("Error");
}
});
};
__________________
29375, 35
|
|
06.08.2014, 07:11
|
Новичок на форуме
|
|
Регистрация: 05.08.2014
Сообщений: 2
|
|
Спасибо конечно!!!. Вы чисто поржать написали?, тут логики нуль....
|
|
06.08.2014, 10:03
|
|
Профессор
|
|
Регистрация: 08.07.2013
Сообщений: 212
|
|
0. Код надо форматировать иначе его никто читать не будет
1. Вас не смущает что Вы пытаетесь обратиться к нулевому индексу не массива а обычного json объекта, в котором у элементов числового индекса в общем случае просто нету?
2. Если же в объекте все есть, покажите данные отладчика, response, responseText, tickers
Последний раз редактировалось Makarov, 06.08.2014 в 10:07.
|
|
06.08.2014, 18:08
|
Профессор
|
|
Регистрация: 07.08.2013
Сообщений: 214
|
|
Сообщение от 13fox
|
Спасибо конечно!!!. Вы чисто поржать написали?, тут логики нуль....
|
вы чисто поржать вопрос задали? чтоб ответы не читать?
человек вам правильно подсказывает Ext.Ajax.request - асинхронный метод и работу с массивом tickers надо реализовывать в callback определенном в конфиге success.
а то что конструктор у вас в таком виде работать не будет ..дак это у вас такой супер план асинхронный ajax реквест делать в конструкторе.
оберните массив в динамически генерируемый класс и этот класс добавьте в requires или mixins для вашего Quotes.
|
|
|
|