22.06.2015, 17:07
|
|
Соединяю Node.js и Ext JS
|
|
Регистрация: 25.06.2009
Сообщений: 1,033
|
|
Цитата:
|
Получается, что мне надо получить все заметки для всех ордеров, как происходит сейчас, но добавить к полям заметок ещё ИД их родителя, т.е. ордера, к которому относятся заметки. А уже в самой таблице, каким-то образом показывать заметки, только для ордера, который открыт в текущей закладке.
|
Мало чего понял, но этого точно делать не надо.
Нужно следовать следующему алгоритму:
Когда делаем даблклик по ордеру должны создаваться: вкладка, форма, хранилище для заметок данного ордера. При создании в экстра-параметрах нужно указывать номер ордера, чтобы в хранилище попали именно его заметки.
И все будет работать. Можно так открывать сколько угодно ордеров.
|
|
22.06.2015, 17:08
|
|
Соединяю Node.js и Ext JS
|
|
Регистрация: 25.06.2009
Сообщений: 1,033
|
|
Цитата:
|
Для того что я хотел изначально, в ExtJS получается нужно создать отдельный стор с заметками для каждого ордера, т.е. если у меня 100 ордеров, то должно быть создано 100 уникальных сторов с заметками. Не знаю, насколько это правильно с точки зрения ExtJS.
|
Ага, так и нужно делать. Расход памяти не особо сильно увеличивается, но удобства явные.
|
|
22.06.2015, 17:09
|
|
Соединяю Node.js и Ext JS
|
|
Регистрация: 25.06.2009
Сообщений: 1,033
|
|
Цитата:
|
Кстати, придумал как передать в таблицу заметок ИД ордера, т.е. добавил в bind переменную с ИД, во время создания таблицы.
|
Не так надо. Есть более простой способ. Прямо в экстра-парамс хранилища. Потом расскажу как сделать.
|
|
22.06.2015, 17:10
|
|
Соединяю Node.js и Ext JS
|
|
Регистрация: 25.06.2009
Сообщений: 1,033
|
|
Цитата:
|
Правда получение этой перемененной внутри таблицы получается каким-то уродским:
this.getView().bind.data.lastValue.orderId
|
нужно так:
this.getView().getViewModel().get("orderId")
или так, если находимся в контроллере (или внутри вида)
this.getViewModel().get("orderId")
|
|
22.06.2015, 21:10
|
Аспирант
|
|
Регистрация: 01.06.2015
Сообщений: 57
|
|
Сообщение от khusamov
|
Мало чего понял, но этого точно делать не надо.
Нужно следовать следующему алгоритму:
Когда делаем даблклик по ордеру должны создаваться: вкладка, форма, хранилище для заметок данного ордера. При создании в экстра-параметрах нужно указывать номер ордера, чтобы в хранилище попали именно его заметки.
И все будет работать. Можно так открывать сколько угодно ордеров.
|
Ну вот, а я только расслабился. А есть где-нибудь пример описанного алгоритма, а то я вроде делаю так как вижу во всех примерах, но ничего подобного не получается? А сам сообразить не могу.
|
|
22.06.2015, 21:13
|
Аспирант
|
|
Регистрация: 01.06.2015
Сообщений: 57
|
|
Сообщение от khusamov
|
Ага, так и нужно делать. Расход памяти не особо сильно увеличивается, но удобства явные.
|
Но как это сделать не представляю. У меня все сторы глобальные. Скажу даже больше, если я их не объявлю в файле Application.js, то всегда лезет ошибка.
Ext.define('JournalApp.Application', {
extend: 'Ext.app.Application',
name: 'JournalApp',
stores: [
// TODO: add global / shared stores here
'JournalApp.store.StrategyStore',
'JournalApp.store.NoteStore',
'JournalApp.store.OrderStore'
],
launch: function () {
// TODO - Launch the application
}
});
|
|
22.06.2015, 21:26
|
Аспирант
|
|
Регистрация: 01.06.2015
Сообщений: 57
|
|
Сообщение от khusamov
|
нужно так:
this.getView().getViewModel().get("orderId")
или так, если находимся в контроллере (или внутри вида)
this.getViewModel().get("orderId")
|
У меня не заработало, выдает null в обоих вариантах. Думаю потому что ViewModel нету у таблицы заметок. А тем способом что я сделал, получилось что ИД забиндинлся в сам view таблицы. Я этот переданный ИД даже нашел в параметре html: "<div orderId="118"></div>" если через консоль, смотрю на console.log(this.getView());
Наверное ИДу не место в вайве, но единственное что работает.
|
|
23.06.2015, 11:10
|
|
Соединяю Node.js и Ext JS
|
|
Регистрация: 25.06.2009
Сообщений: 1,033
|
|
Цитата:
|
Но как это сделать не представляю. У меня все сторы глобальные. Скажу даже больше, если я их не объявлю в файле Application.js, то всегда лезет ошибка.
|
Хранилища вы верно прописали в приложении. Хотя не нужно там полное имя класса писать, можно только последнюю часть.
Но потом их надо подключать по алиасам.
|
|
23.06.2015, 12:33
|
Аспирант
|
|
Регистрация: 01.06.2015
Сообщений: 57
|
|
Сообщение от khusamov
|
Хранилища вы верно прописали в приложении. Хотя не нужно там полное имя класса писать, можно только последнюю часть.
Но потом их надо подключать по алиасам.
|
У меня без полного пути туча ошибок показывается, как всегда не понятных и не известно к какому месту относящихся.
|
|
23.06.2015, 14:08
|
|
Соединяю Node.js и Ext JS
|
|
Регистрация: 25.06.2009
Сообщений: 1,033
|
|
Забивайте стрелку в тимвивере+скайпе на завтра. Мне было бы удобнее после 15:00 мск. Логин в скайпе khusamov
|
|
|
|