К сожалению это не помогло. Возвращает значение, которое у меня указано по умолчанию. Оно при открытии формы заменяется на текущее. Получается данные ещё не загрузились в форму, ну как я думаю.
Вот так выглядит моя ViewModel:
Ext.define('JournalApp.view.orders.OrderViewModel', {
extend: 'Ext.app.ViewModel',
alias: 'viewmodel.order',
requires: [
'JournalApp.model.OrderModel',
'JournalApp.store.NoteStore'
],
data: {
name: 'Разделы',
singleOrder: null // <--- ВОЗВРАЩАЕТ ВОТ ЭТОТ NULL ВМЕСТО ДАННЫХ
},
stores: {
orders: {
model: 'OrderModel',
autoLoad: true,
autoSync: true,
sorters: [{
property: 'createddate',
direction: 'DESC'
}],
proxy: {
type: 'rest',
url : 'journal/orders/',
//pageParam: '',
//startParam: '',
//limitParam: '',
reader: {
type: 'json',
rootProperty: 'orders'
},
writer: {
type: 'json',
writeAllFields: true, // это чтобы все поля передавать на сервер.
allDataOptions: {
associated: true // <- THE MOST IMPORTANT CHANGE (С этим стал передвать вложенные модели)
},
}
}
},
strategys: {
source: 'JournalApp.store.StrategyStore',
},
notes: {
source: 'JournalApp.store.NoteStore',
}
}
});
Форма у меня создается в закладке Tab и ей присваиваются данные, которые я передаю из строки главной таблицы, не той о которой сейчас идет разговор, а другая. Вот такой строкой я присваиваю данные:
orderTab.getViewModel().setData({ singleOrder: record });
И они присваиваются, их даже видно в переменной formId из вашего примера, если вызвать console.log(formId), но только в момент выполнения там null, а не данные.
Я пытался делать через grid.findParentByType('orderEdit').getViewModel(). data.singleOrder , но там то же самое, в момент вызова null, а в консоли потом есть все данные.
Вот так вызвал логи и прикрепил картинку, того как это выглядит в итоге:
var formId = grid.up('orderEdit').getViewModel().data.singleOrder;
console.log('formId', formId);
console.log('data', grid.up('orderEdit').getViewModel().data);
Сообщение от novikov
|
Ext.define('JournalApp.view.notes.Note', {
extend: 'Ext.grid.Panel', //'Ext.panel.Panel',//
alias: 'widget.myGrid', // <-- подобным образом напишите в родительской форме widget.myForm
noteStore: null,
initComponent: function() {
this.callParent();
this.noteStore = Ext.getStore('JournalApp.store.NoteStore');
this.on('render', this.loadStore, this);
},
loadStore: function(grid) {
var formId = grid.up('myForm').getViewModel().data.singleOrder; // <-- ищем форму по alias myForm
this.noteStore.load({
scope: this,
params: {
orderid: formId
}
});
},
|