Показать сообщение отдельно
  #9 (permalink)  
Старый 20.06.2015, 21:47
Аспирант
Отправить личное сообщение для Пролетарий Посмотреть профиль Найти все сообщения от Пролетарий
 
Регистрация: 01.06.2015
Сообщений: 57

К сожалению это не помогло. Возвращает значение, которое у меня указано по умолчанию. Оно при открытии формы заменяется на текущее. Получается данные ещё не загрузились в форму, ну как я думаю.

Вот так выглядит моя 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
            }
        });
    },
Изображения:
Тип файла: jpg 2015-06-21_014428.jpg (165.5 Кб, 3 просмотров)
Ответить с цитированием