Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   myStore.load(); (https://javascript.ru/forum/extjs/40273-mystore-load-%3B.html)

Pro100tom 30.07.2013 11:14

myStore.load();
 
Проблема во в чем. Сначала я использую метод
myStore.load();
Потом я хочу удалить, (и удаляю) некоторые записи при помощи метода
myStore.removeAt(2);
Но ничего не удаляется. Если я комментирую метод
myStore.load();
, тогда все там нормально удаляется. Ну а данные, емае, перезагрузить то перед тем как удалять что-то, тоже нужно, блин!

novikov 30.07.2013 14:27

Какой proxi задан и зада(л)н ли в определении класса myStore?

Pro100tom 30.07.2013 16:53

Ext.define('WD.store.SecondStore', {
    extend: 'Ext.data.Store',
    model: 'WD.model.Admin',  
    autoLoad: true,     
    storeId: 'ttt',
    proxy: {
        type: 'ajax',
        api: {
            read: 'data/users3.json',
            update: 'data/updateUsers3.json'
        },
        reader: {
            type: 'json',
            root: 'users3',
            successProperty: 'success'
        }
    }
});
- это файл store. А второго вопроса не понял.

novikov 30.07.2013 18:04

в прокси не определён метод api - destroy. Может быть связано с этим?

Pro100tom 30.07.2013 18:12

Не, с этим не связано скорее всего. Так трудно, блин разобраться с этим всем. Я теперь пытаюсь вместо load и removeAt вообше фильтровать, но там еще больше проблем...

a_mariner 03.08.2013 21:13

Можете показать весь пример, вместе с proxy?

Вообще, у load() достаточно подводных камней. Можно использовать и loadData, если данные у вас уже имеются, скажем, в виде массива. Вот так всё работает:

store.loadData(myData);
store.removeAt(0);

siber-biber 07.08.2013 16:50

Цитата:

Сообщение от Pro100tom (Сообщение 265038)
Проблема во в чем. Сначала я использую метод
myStore.load();
Потом я хочу удалить, (и удаляю) некоторые записи при помощи метода
myStore.removeAt(2);
Но ничего не удаляется. Если я комментирую метод
myStore.load();
, тогда все там нормально удаляется. Ну а данные, емае, перезагрузить то перед тем как удалять что-то, тоже нужно, блин!

1) Как вы определили что запись не удаляется?
После вызова myStore.removeAt() проверьте в консоли содержимое массива myStore.getRemovedRecords() там должна быть удаленная запись.

2) Вы пишите что если удаляете вызов myStore.load() то все работает. Как это вообще может быть? Последовательность работы с данными в extjs сторах:
а) загрузили в стор с помощью load() либо loadData() либо прямо через конструктор стора.
б) редактируем в сторе
в) вызываем sync() чтоб данные ушли на сервер

Т.е. без вызова load() данных как-бы нет :no:
Так что что-то у вас фундаментально не в той последовательности вызывается возможно.. короче нужен тест кейс подетальнее ..включающий ваш вызов load(). :)

3) Ну и у вас действительно не определен url для обработки удаления записи сервером. Надо его описать чтото типа такого, только свой url впишите:
...
	    proxy: {
	        type: 'ajax',
	        api: {
	            read: 'data/users3.json',
	            update: 'data/updateUsers3.json',
	            destroy: 'data/dropUsers.json'
	        },
...

Пока вроде все что вижу. Удачи.


Часовой пояс GMT +3, время: 16:07.