| 
	| 
	
	| 
		
	| 
			
			 
			
				21.06.2015, 14:12
			
			
			
		 |  
	| 
		
			|  | Соединяю Node.js и Ext JS       |  | 
					Регистрация: 25.06.2009 
						Сообщений: 1,033
					 
		
 |  |  
	| это устаревшая опция autoCreateViewportвместо нее mainView надо юзать
 |  |  
	| 
		
	| 
			
			 
			
				21.06.2015, 15:08
			
			
			
		 |  
	| 
		
			
			| Аспирант       |  | 
					Регистрация: 01.06.2015 
						Сообщений: 57
					 
		
 |  |  
	| Спасибо, буду дальше пример осиливать. Вот только как его маленьким сделать не знаю, тут по сути надо половину функционала в пример перенести, чтобы что-то походило на реальную ситуацию.  
Как я понял, основная причина почему не работал пример, это отсутствие прокси с урлом в моделе. Я за основу взял https://fiddle.sencha.com/#fiddle/g56  чтобы смотреть как там сделано и повторять, но у них без прокси работает почему-то. (Ну да ладно, просто мысли в слух.) |  |  
	| 
		
	| 
			
			 
			
				21.06.2015, 15:12
			
			
			
		 |  
	| 
		
			
			| Аспирант       |  | 
					Регистрация: 01.06.2015 
						Сообщений: 57
					 
		
 |  |  
	| Читал я в документации про это, но Sencha Cmd генерирует autoCreateViewport, хотя и взята последняя версия у меня. Пробовал переделать на mainView, но там как всегда непонятные ошибки лезут, поэтому оставил как робот сделал, а то и без этого с каждой ошибкой несколько дней на место топчусь.    
	
 
	| Сообщение от khusamov   |  
	| это устаревшая опция autoCreateViewport вместо нее mainView надо юзать
 |  
	
 |  |  
	| 
		
	| 
			
			 
			
				21.06.2015, 15:28
			
			
			
		 |  
	| 
		
			|  | Соединяю Node.js и Ext JS       |  | 
					Регистрация: 25.06.2009 
						Сообщений: 1,033
					 
		
 |  |  
	| Ясно. С mainView тогда позже разберемся. Мне тоже надо его внедрять скоро в проект. Руки еще не добрались. |  |  
	| 
		
	| 
			
			 
			
				21.06.2015, 17:41
			
			
			
		 |  
	| 
		
			
			| Аспирант       |  | 
					Регистрация: 01.06.2015 
						Сообщений: 57
					 
		
 |  |  
	| Сделал пример, массу всего пришлось нагородить, но все проблемы в файле Note.js. В этом примере то что работает в реальном коде, здесь не работает, поэтому чтобы не было ошибки, закомментировал проблемный участок. 
noteStore: null,
    
    initComponent: function() {
        this.callParent();
        this.noteStore = Ext.getStore('Fiddle.store.NoteStore');
        this.on('render', this.loadStore, this);
    },
    
    loadStore: function(grid) {
        var formId = grid.up('orderEdit').getViewModel().data.singleOrder;
        console.log('formId:', formId);
        //console.log(':', grid.up('orderEdit').getViewModel().getData());
        //console.log(grid.getStore());
        
        /*this.noteStore.load({
            scope: this,
            params: {
                orderid: 'тут ид родителя таблицы, но как получить?'
            }
        });*/
    },
 |  |  
	| 
		
	| 
			
			 
			
				21.06.2015, 17:42
			
			
			
		 |  
	| 
		
			
			| Аспирант       |  | 
					Регистрация: 01.06.2015 
						Сообщений: 57
					 
		
 |  |  
	|  |  |  
	| 
		
	| 
			
			 
			
				21.06.2015, 19:03
			
			
			
		 |  
	| 
		
			
			| Аспирант       |  | 
					Регистрация: 01.06.2015 
						Сообщений: 57
					 
		
 |  |  
	| 
	
 
	| Сообщение от khusamov   |  
	| Если делать все правильно, то вызов getStore() не понадобиться. 
 нужно переписать так:
 
 
 
{
        xtype: 'noteGrid',
        fieldLabel: 'Заметки:',
        viewModel: {
            type: 'order',
            stores: { notes: { type: "notes" } }
        },
        bind: {
            store: '{notes}'
        },
    }
 |  
	
 Т.е. помимо определения стора в ViewModel, ещё надо его прописать при определении таблицы?
 
У меня у формы, содержащей таблицу, есть ViewModel. К которой, я предполагаю будет обращаться и вложенная таблица. Пробовал для вложенной таблицы делать свой ViewModel, но ничего не работало. Когда убрал ViewModel таблицы и стал обращаться к ViewModel формы, то вроде заработало. 
[/quote]
 
	
 
	| Сообщение от khusamov   |  
	| Автолоад нужен, но грид заметок должен создаваться ПОСЛЕ выбора ордера. После закрытия вкладки ордера грид должен уничтожаться (destroy). Тогда все встанет на свои места. Тогда и автолоад заработает как нужно. Такой вариант во многих примерах сенчи расписан. То есть щелкнули по ордеру - вкладка и грид в ней и вообще все создается на лету, а при закрытии вкладки - все уничтожается. |  
	
 Я правильно понял, что вместо определения таблицы как в коде вверху, т.е., среди определения полей в разделе items формы, надо как-то по другому? 
 
Получается нужно в функции initComponent самой формы, создавать вложенную таблицу и тогда автолоад заработает? Тогда по идее можно будет создать что-то вроде переменной во вложенной таблице, куда записать ИД, из создавшей её формы. Хотя попробовал в initComponent  самой формы, получить её ИД, то тоже был null. В общем как всегда, непонятки и ошибки всякие.  
			
			
	
			
			
			
			
			
				  |  |  
	| 
		
	| 
			
			 
			
				21.06.2015, 19:49
			
			
			
		 |  
	| 
		
			|  | Соединяю Node.js и Ext JS       |  | 
					Регистрация: 25.06.2009 
						Сообщений: 1,033
					 
		
 |  |  
	| 
	
 
	| Цитата: |  
	| Т.е. помимо определения стора в ViewModel, ещё надо его прописать при определении таблицы? |  
	
 Что вы подразумеваете под определением? |  |  
	| 
		
	| 
			
			 
			
				21.06.2015, 19:56
			
			
			
		 |  
	| 
		
			|  | Соединяю Node.js и Ext JS       |  | 
					Регистрация: 25.06.2009 
						Сообщений: 1,033
					 
		
 |  |  
	| А что вообще должно получиться? 
Я вижу пока грид с ордерами:
 
items:[{
            xtype: 'orderGroup',
            itemId: 'orderGroup_1',
            listeners: {
                vieworder: 'onCreateTab'
            }
        }]
Для чего нужна эта вкладка с таблицей ордеров?
 
Для чего нужен аккордион слева?
 
{
        xtype: 'panel',
        layout: {
            type: 'accordion',
            animate: true     
        },    
        collapsible: true,
        ...
    }
В общем нужно описание ФУНКЦИОНАЛЬНОСТИ вашего примера.			 Последний раз редактировалось khusamov, 21.06.2015 в 20:06.
 |  |  
	| 
		
	| 
			
			 
			
				21.06.2015, 20:46
			
			
			
		 |  
	| 
		
			
			| Аспирант       |  | 
					Регистрация: 01.06.2015 
						Сообщений: 57
					 
		
 |  |  
	| 
	
 
	| Сообщение от khusamov   |  
	| Что вы подразумеваете под определением? |  
	
 Вот определение стора в ViewModel:
 
Ext.define('JournalApp.view.orders.OrderViewModel', {
    extend: 'Ext.app.ViewModel',
    alias: 'viewmodel.order',
    requires: [
        'JournalApp.model.OrderModel',
        //'JournalApp.model.NoteModel' 
        'JournalApp.store.NoteStore' 
    ],
    data: {
        singleOrder: null
    },
    stores: {        
        notes: {
            source: 'JournalApp.store.NoteStore',
        }      
    }
});
Вот определение самой таблицы, где вы рекомендуете добавить ещё раздел стора:
 
{
        xtype: 'noteGrid',
        fieldLabel: 'Заметки:',
        viewModel: {
            type: 'order',
            stores: { notes: { type: "notes" } }
        },
        bind: {
            store: '{notes}'
        },
    }
 Т.е. надо их так дублировать специально? |  |  |  |