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}'
},
}
Т.е. надо их так дублировать специально?
|
|
|
|