Вот кодWeb дб - получение данных обратно
onError = function(tx, e) {
alert('Something unexpected happened: ' + e.message);
}
var webdb = openDatabase(dbName, '1.0' , dbDesc , dbSize);
var colourArray = new Array();
webdb.transaction(function(tx) {
tx.executeSql('SELECT * FROM colours',
[],
function(tx,rs) {
var ctn = rs.rows.length;
for (var i=0; i < ctn; i++) {
var row = rs.rows.item(i);
colourArray.push([row.id , row.title]);
}
},
onError);
});
/**
* the array looks like [[1,'red'],[2,'white'],[3,'black'] ...]
*/
var ColourStore = new Ext.data.ArrayStore({fields: ['key', 'val'],
data: colourArray});
В таблице «цвет» содержит имя цвета и хэш-код. Предполагалось, что использование ExtJS Ext.data.ArrayStore будет использоваться для добавления других выпадающих списков в массивную форму.
Моя проблема - я не мог получить данные назад в виде массива. Переменная «colourArray» пуста ... Я знаю, что я ударил некоторую ошибку javascript, проблему с контуром ... но просто не мог понять, как вернуть это значение внутреннего цикла. Попробуйте много возврата -> возврат -> функция возврата и больше возврата. Ни один из них не работает.
Просто найти нить http://stackoverflow.com/questions/1898178/callback-return-value-and-html5-executesql-function –
[знак ...] только это одно делает весь HTML5 не готов к прайм-тайм ... действительно думаю о боли, просто чтобы получить переменную? –
Только что протестировал клон activeRecord. тоже не работает. Потому что проблема у меня есть. У меня есть глобальное свойство (переменная). Мне нужно поставить результирующий набор в переменную (свойство), затем доступную для использования другими методами (функциями) позже. Когда вы пытаетесь console.log (variable) before - empty. After - undefined. В середине (в то время как все еще внутри оператора executeSql, вызываемого назад). Точно, что я хотел - заполнено данными. –