Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.12.2010, 16:20
Аватар для a.malitsky
Аспирант
Отправить личное сообщение для a.malitsky Посмотреть профиль Найти все сообщения от a.malitsky
 
Регистрация: 26.03.2010
Сообщений: 56

executeAsync, SQLite, Firefox extension
Не могу передать в объект результаты работы внутри функции executeAsync:
function virt(){
//блаблабла
this.getDb = function (id){
var statement = db.createStatement("SELECT * FROM `table` WHERE r_id=:id;");
statement.params.id=id;
statement.executeAsync({
	handleResult: function(aResultSet){
	var row=aResultSet.getNextRow();
	this.r_id=row.getResultByName("r_id");},
	//row (или r_id) надо передать наружу - в объект, частью которого является данная функция
	handleError:,//функция из примера ниже
	handleCompletion://функция из примера ниже   
	});
alert(this.r_id);//undefined (для row - тоже самое)
}}

Задача - прочитать строку БД и передать полученный массив(спец объект) в объект virt. Eval и window.row не работают - вылетает ошибка NS_ERROR_XPC_CANT_MODIFY_PROP_ON_WN. Всё это в плагине (сайдбар) для FF. Пытался передавать и строки (свойства объекта row).

Спецификация фунцкции executeAsync и пример её использования.

Чувствую что упускаю что-то глобальное и(но) очевидное - помогите найти. Если сам же положил грабли и не могу обойти - толкните в нужном направлении. Спасибо!

Последний раз редактировалось a.malitsky, 10.12.2010 в 16:22.
Ответить с цитированием
  #2 (permalink)  
Старый 11.12.2010, 19:00
Аватар для a.malitsky
Аспирант
Отправить личное сообщение для a.malitsky Посмотреть профиль Найти все сообщения от a.malitsky
 
Регистрация: 26.03.2010
Сообщений: 56

Решилось передачей значения в функцию того же объекта.
Ответить с цитированием
  #3 (permalink)  
Старый 23.02.2011, 23:16
Новичок на форуме
Отправить личное сообщение для comp3v Посмотреть профиль Найти все сообщения от comp3v
 
Регистрация: 23.02.2011
Сообщений: 2

Сообщение от a.malitsky Посмотреть сообщение
Решилось передачей значения в функцию того же объекта.
а можно поподробнее, с примером кода, как решили проблему?
спасибо.
Ответить с цитированием
  #4 (permalink)  
Старый 24.02.2011, 07:58
Аватар для a.malitsky
Аспирант
Отправить личное сообщение для a.malitsky Посмотреть профиль Найти все сообщения от a.malitsky
 
Регистрация: 26.03.2010
Сообщений: 56

Запрос:
this.db2form = function (id){
	var statement = as.db.createStatement("SELECT * FROM `table` WHERE id=:id;")
	statement.params.id = id
	statement.executeAsync({
		handleResult: function(aResultSet){virt.db2virt(aResultSet);},//обращение через глобальную переменную
		handleError: function(aError) {print("Error: " + aError.message);},
		handleCompletion: function(aReason) {virt.virt2form()}
		})
	}

Обработка результата:
this.db2virt = function (res){
	row = res.getNextRow();
	for (var i = 0; i<this.fields.length; i++)
		this.fields[i].fromDB(row.getResultByName(this.fields[i].dbName))		
	}

После завершения обработки:
this.form2virt = function(){ for (var i=0; i<this.fields.length; i++) this.fields[i].fromForm() }

Все функции - методы объекта Virt.
Ответить с цитированием
  #5 (permalink)  
Старый 24.02.2011, 23:37
Новичок на форуме
Отправить личное сообщение для comp3v Посмотреть профиль Найти все сообщения от comp3v
 
Регистрация: 23.02.2011
Сообщений: 2

ок, спасибо!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
тег <audio> в Opera, Chrome, Firefox Magneto Javascript под браузер 12 25.11.2010 15:12
Firefox extension и internal public suffix list e1f Общие вопросы Javascript 1 18.11.2010 18:22
Peppy и Firefox Cr@ZyBoY Библиотеки/Тулкиты/Фреймворки 13 14.02.2010 20:38
В Mozilla Firefox 3.0 проблемма с Javascript меню artmedia Элементы интерфейса 1 07.09.2008 10:43
FireFox: onmouseover не работает при зажатой кнопке мыши no. Общие вопросы Javascript 4 19.08.2008 13:43