Сообщение от khusamov
|
Этот код выглядит странно. Много чего лишнего.
|
Возможно, мне сложно судить, но это единственное что заработало, более простые и очевидные способы не работали.
Сообщение от khusamov
|
Запись
noteStore: null,
не нужна, так как в гриде и так есть store. Незачем делать дубликат.
|
А как его получить? Через this.getStore() я получаю стор, но когда вызываю load() то получаю ошибку. А через эту дополнительную переменную всё работает.
Сообщение от khusamov
|
Запись
this.noteStore = Ext.getStore('JournalApp.store.NoteStore');
вообще не нужна. Все работает и без нее. Нужно store задавать как и полагается: store: {type: "алиас сторе"}
|
Я так делаю, если это имеется ввиду, но как я выше написал получаю ошибку. А через это глобальное получение Ext.getStore() по крайней мере в переменной оно есть.
{
xtype: 'noteGrid',
fieldLabel: 'Заметки:',
viewModel: {
type: 'order'
},
bind: {
store: '{notes}'
},
}
Сообщение от khusamov
|
Запись
this.on('render', this.loadStore, this);
не нужна, можно просто store сделать autoload
|
К сожалению от autoload пришлось отказаться, т.к. заметки должны быть получены для конкретного ордера, при открытии этого ордера. А для этого надо знать ИД ордера перед load().
Я когда задумал это дело, то рассчитывал, что при открытии формы, в которую вложена таблица заметок, то при её создании я передам в store фильтр с ИД ордера и затем произойдет autoload и всё будет как в сказке. Но в реальности autoload вызывается при открытии приложения, само собой без нужного ИД, а при открытии формы, где находится таблицы, которую надо загрузить, никакого autoload не происходит. Поэтому весь этот код в initComponent.