Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Работа с примером MVVM (https://javascript.ru/forum/extjs/56199-rabota-s-primerom-mvvm.html)

kolka 05.06.2015 17:57

Не работает ни в песочнице ни в реале.. :(

khusamov 05.06.2015 21:22

Совсем все плохо... перенес к себе на комп, у меня поля формы вообще не заполняются из вьюмодели

Интересно, а где взять весь код примера?
http://dev.sencha.com/extjs/5.1.0/ex...-child-session

чтобы его пощупать отдельно...

khusamov 05.06.2015 22:33

Итак кое что удалось накопать.

1) в песочнице явно что-то не так с имитацией AJAX-запросов. Из-за чего такая ошибка вылетает: Uncaught Error: Invalid record id returned for 2@User

2) я переделал хранилище с AJAX на ARRAY, чтобы было оно в памяти, чтобы не было необходимости имитировать AJAX-запросы

После этого вышеупомянутая ошибка пропала наконец. Но к сожалению поля формы не заполняются. Ровно такая же проблема и у меня на компе.

Я убрал links.

Было так:
me.dialog = view.add({
            xtype: 'user-form',
            viewModel: {
                data: {
                    title: record ? 'Редактирование: ' + record.get('name') : 'Добавить пользователя'
                },
                links: {
                    currentUser: record || {
                        type: 'User',
                        create: true
                    }
                }
            }
        });


Стало так:
me.dialog = view.add({
            xtype: 'user-form',
            viewModel: {
                data: {
                    title: record ? 'Редактирование: ' + record.get('name') : 'Добавить пользователя',
                    currentUser: record
                }
            }
        });


Теперь все работает.

Вот моя песочница:
https://fiddle.sencha.com/#fiddle/o4e

ПОСТСКРИПТУМ:

Почти в тему (так как это происходит именно в этой теме) и не совсем по теме (так как никак не связано с описываемыми проблемами):

Блин, из-за проблем в коде этой страницы форума у меня теперь вдобавок все тормозит... чето выдает ошибку, связанную с гуглом...

Uncaught Error: adsbygoogle.push(): All ins elements in the DOM with class=adsbygoogle already have ads in them.

gd	@	pagead2.googlesyndication.com/pagead/js/adsbygoogle.js:54
hd	@	pagead2.googlesyndication.com/pagead/js/adsbygoogle.js:55
(anonymous function)	@	pagead2.googlesyndication.com/pagead/js/adsbygoogle.js:55
(anonymous function)	@	pagead2.googlesyndication.com/pagead/js/adsbygoogle.js:55

khusamov 05.06.2015 22:35

Возникает вопрос, зачем эти линки, если и так все работает? И почему эти линки не работают? Но это я уже отдельным постом заделаю. Правда не скоро.

khusamov 05.06.2015 23:02

Кстати, есть проблема. Там в форму передается ссылка на выделеную запись для редактирования. И когда мы ее отредактировали, то отменить выделения не получится. Ибо они уже в хранилище отобразились. Как отменить - не знаю. Вроде по идее нужно копию записи делать и ее редактировать. Или делать по старинке без bind (с использованием form.updateRecord()). Как у них в примере это работает - ума не приложу...

Хмм... может для этого линки и были нужны?

В связи с этим обстаятельством код корректирую:

me.dialog = view.add({
            xtype: 'user-form',
            viewModel: {
                data: {
                    title: record ? 'Редактирование: ' + record.get('name') : 'Добавить пользователя',
                    currentUser: record ? record.copy() : new FiresAPP.model.security.User
                }
            }
});

kolka 09.06.2015 12:37

khusamov,
Большое спасибо за развернутый ответ.. с большего понимаю как все работает.. дальше буду сей пример под себя модифицировать..

p.s. ваша помощь очень помогает разобраться...


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