Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.07.2013, 14:44
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

Все проблемы с $resource
При работе с $resource, возникли некоторые проблемы. Надеюсь здесь помогут их разрешить или посоветуют, как изменить архитектуру.

1. Не обновляется кэш при обновлении модели. Т.е. ответ сервера кэшируется, но если происходят какие-то изменения с объектом, то они сохраняются только на сервере, а кэш остается старым, что чревато... Можно, конечно, каждый раз очищать кэш, но это не самый красивый вариант. Можно обновлять ячейку кэша, которой соответствует изменившийся элемент, но чаще всего кэшируется запрос query(), т.е. все данные в одной ячейке и тогда нужно их перебирать, искать нужный элемент, обновлять и опять записывать. Слишком громоздко.

2. Что делать, если на запрос списка элементов query() приходит сообщение об ошибке {error: 'Невозможно загрузить коллекцию'}. Ангуляр в этом случае преобразует его в массив ['e', 'r', 'r', 'o', ...]. Как отделить сообщение об ошибке от данных?
Ответить с цитированием
  #2 (permalink)  
Старый 06.07.2013, 16:53
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

Вторая проблема решена.
Данные ошибки можно получить в чистом виде через $then
Resource.query().$then(function(success){ console.log(success.data) });

Или лучший вариант, используя код ошибки (напр., Header('HTTP/1.1 503 Service Unavailable')), можно отловить их в колбэке для ошибок:
Resource.query(function(success){ ... }, function(error){ console.log(error.data) })
Ответить с цитированием
  #3 (permalink)  
Старый 08.07.2013, 10:09
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

По первой проблеме нужен пример кода.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
Ответить с цитированием
  #4 (permalink)  
Старый 15.07.2013, 21:53
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

var User = $resource('/user/:userId', {userId:'@id'});
    var users = User.query();
});

users[1].name = 'new name';
users[1].$save;
users[2].$remove();

delete users;

var users = User.query(); //Вот тут должна загружаться кэшированная копия с учетом проделанных ранее изменений
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Canvas, проблемы с отрисовкой изображений sunAirway Общие вопросы Javascript 4 07.01.2016 22:21
Проблемы с .live() DarkDiabolik jQuery 10 01.07.2012 14:25
проблемы с DNS при раздаче интернета l-liava-l Оффтопик 3 17.06.2012 21:32
Решение проблемы с отображением элементов на странице mozyr Javascript под браузер 17 13.01.2012 02:34
Проблемы с iframe в ie GRean Общие вопросы Javascript 1 14.05.2010 10:29