Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> extJS 4 и создание объекта из AJAX запроса
rizhiy87  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 14
Пользователь №: 30497
На форуме: 5 лет, 18 дней
Карма:




Только начал познавать этот чудесный фреймворк и сразу же залип. Вопрос даже не по extJS, а, наверное, больше по азам javascript.

Описываю класс Manager. Хочу, чтобы при объявлении нового екземпляра без указания id создаваля пустой класс (все поля пустые), если при создании указать id, - лезем в MySQL базу и тащим оттуда нужную запись.
Код:
Ext.define('Classes.Manager', {
alias: 'Manager',

config: {
id: null,
name: '',
login : '',
password: '',
},

constructor: function(id) {
if (id) {
Ext.Ajax.request({
url: '/api.php?section=manager&action=get&id=' + id,
success: function(response, options){
jsonResponse = Ext.decode(response.responseText);
if (jsonResponse.status) {
this.id = jsonResponse.response.manager.id;
this.name = jsonResponse.response.manager.name;
this.login = jsonResponse.response.manager.login;
this.password = jsonResponse.response.manager.password;

console.log(this);
} else {
console.log(jsonResponse.response.message);
}
}
,
failure: function(response, options){
console.log(response);
},
});
} else {
this.id = null;
this.name = '';
this.login = '';
this.password = '';
}
}
,
});
Проблема в том, что при успешном запросе, console.log(this) выдает совсем не то, что я ожидаю. Как объекту передать то, что вернул ajax?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Lenarfate  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









попробуйте вывести по отдельности this.id , this.name и тд
и посмотрите, что в них
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
rizhiy87  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 14
Пользователь №: 30497
На форуме: 5 лет, 18 дней
Карма:




console.loh(this)
Window {top: Window, window: Window, location: Location, external: Object, chrome: Object}

id, name и т.д. появляются, но не в том объекте. Я понимаю, что проблема в том, что this в контексте constructor: function(id){ ..... и this в контексте Ext.Ajax.request({.... - это разные вещи. Как мне из Ext.Ajax.request({ сослаться на тот, верхний this ?
Во закрутил :)
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Lenarfate  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









если вам нужны id, name и тд из метода config, то и обращайтесь к нему непосредственно, если я правильно понял, конечно.
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
rizhiy87  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 14
Пользователь №: 30497
На форуме: 5 лет, 18 дней
Карма:




Цитата (Lenarfate @ 24.09.2013 - 12:12)
если вам нужны id, name и тд из метода config, то и обращайтесь к нему непосредственно, если я правильно понял, конечно.

config - это не метод, это свойство объекта Manager
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
rizhiy87  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 14
Пользователь №: 30497
На форуме: 5 лет, 18 дней
Карма:




Разобрался. Если кому пригодится, то
Ext.Ajax.request({
scope: this,
url: '/api.php?section=manager&action=get&id=' + id,
......
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса