Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Как забиндить combobox с хранилищем? (https://javascript.ru/forum/extjs/67160-kak-zabindit-combobox-s-khranilishhem.html)

khusamov 01.02.2017 02:11

Как забиндить combobox с хранилищем?
 
Почему не получается забиндить хранилище на комбо?
xtype: "combobox",
			fieldLabel: "Type",
			allowBlank: false,
			name: "WORKSTATION_TYPE",
			queryMode: "remote",
			bind: {
				store: "{workstationTypeStore}"
			},
			displayField: "TITLE",
			valueField: "NAME",
			emptyText: "Select a type..."

nohuhu 03.02.2017 00:08

А вы это хранилище объявили во viewModel?

Ext.define('Store', {
    alias: 'store.workstationType',
    ...
});

Ext.define('View', {
    viewModel: {
        stores: {
            workstationTypeStore: {
                type: 'workstationType' 
            }
        }
    },

    ...
});

khusamov 03.02.2017 00:57

Я по другому определил хранилище, через модель:


workstationTypeStore: {
		 	model: "Ews.model.element.WorkstationType",
		 	autoLoad: true
		 }


Я собственно хотел именно в модели вида создать хранилище, а не в отдельном файле.

kolka 03.02.2017 11:50

У меня как у вас, и все работает.
Во viewModel определен стор со свойством model:'App.model.Model'.

khusamov 03.02.2017 13:26

Ясно. Буду думать где у меня проблема. Хотя код весьма простой...

nohuhu 04.02.2017 04:16

Цитата:

Сообщение от khusamov (Сообщение 443025)
Я собственно хотел именно в модели вида создать хранилище, а не в отдельном файле.

По идее так должно работать, т.к. конфиг хранилища во viewModel просто скармливается в Ext.data.StoreManager.lookup() и там должен был создаться новый анонимный экземпляр Ext.data.Store с указанной моделью.

Хотя если вы указываете proxy и все остальные параметры на модели, я не уверен что они подтянутся из модели в конфигурацию хранилища при таком варианте использования. Сможете сделать минимальный Fiddle?

khusamov 04.02.2017 05:47

У меня нет там прокси. Только указание модели.

nohuhu 10.02.2017 22:12

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

khusamov 13.02.2017 23:15

У меня прокси определен в модели. Разве этого недостаточно?

Ведь это работает для гридов. Почему то же самое не работает для Комбо?

Дело в том, что с появлением ViewModel я уже не делаю сторе как классы. Пропала необходимость. Потому вдвойне удивительно, что для комбо это требуется)))

Fiddle я постараюсь сделать позже. Если у меня не заработает это, то сделаю. Ибо не стоит городить сторе только ради комбо.


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