Случай довольно распространен, когда вы щелкаете ячейкой в сетке, модальное окно с появляющейся формой, там вы делаете изменения, щелкаете кнопкой «Сохранить» и имеете сохранить в обновленной сетке. В 4-м я сделал это через loadRecord из сетки в форму, а затем использовал set-method для применения изменений в хранилище сетки. Теперь я пытаюсь сделать это с помощью MVVM-подхода и иметь некоторые stucks. Потому что, когда я устанавливаю одну и ту же виртуальную машину в сетку и форму, после уничтожения формы (кнопка «Сохранить или отменить»), виртуальная машина также уничтожает, а приложение разрушается. И поэтому мы не можем использовать один экземпляр VM в нескольких компонентах. Мы должны поместить его в контейнер, где есть сетка и форма. Все официальные примеры такого типа. И вопрос в том, что если кто-то решил эту проблему?
fiddle
answer from sencha forumextjs 5 как привязать хранилище к модальному окну и сетке
ответ
В дополнение к user1638582 «ы ответ, мое собственное решение, чтобы добавить выбранную запись в ViewModel формы:
var form = Ext.create('Plus.view.FormbetV',{
viewModel:{
data:{
currentRec:this.getView().getSelectionModel().getSelection()[0]
}
}
});
Читали через this blog post, в котором MVVM example для сетки используется?
ExtJs 5 ViewModel имеет вложенную структуру для компонентов, все под-объекты могут использовать ViewModel родителя. Таким образом, вы могли бы попытаться добавить объект окна с видом ViewController:
var form = Ext.create('Plus.view.FormbetV');
var window = Ext.create('Ext.Window', {
frame: true,
width: 350,
height: 200,
modal: true,
layout: 'fit'
});
window.add(form);
this.getView().add(window); // <--- add parent 'scope'
window.show();
И не забудьте удалить этот код:
//var viewModel = Ext.getCmp('gridbet').getViewModel();
//this.setViewModel(viewModel);
Это работает для меня, но в этом случае размер окна будет ограничен по размеру сетки.
Мне нравится ваше решение, но кажется, что есть проблема с заголовком окна - его не видно. – leshicus
Спасибо за ваше решение, интересный способ! Чтобы исправить заголовок окна, мы могли бы использовать 'height: 300' для сетки, а затем удалить формуляры для _gridbet_ ViewModel. Но в любом случае модальное окно будет сломано. – afschr
Глядя на примерах,«Привязка данных -> Изолированные Ребенок Sessions», кажется, что мы ищем:
http://dev.sencha.com/ext/5.1.0/examples/kitchensink/#binding-child-session
- 1. ExtJS: Применение Messagbox только к определенному окну (модальному)?
- 2. Как привязать к сетке QGraphicsTextItem?
- 3. Привязать к окну в jQuery
- 4. Как привязать свойство зависимости WPF к окну?
- 5. Как привязать current_youser.age к текстовому окну
- 6. Показать данные, привязанные к модальному окну, к угловому ng-repeat
- 7. Как показать меню в сетке - ExtJS 5?
- 8. Как я могу обратиться к Модальному окну в Dom?
- 9. Привязать команду Призма к сетке?
- 10. Как мне привязать к модальному диалогу по внешней ссылке?
- 11. Невозможно получить доступ к модальному диалоговому окну в Selenium Webdriver
- 12. Extjs 5 добавления фильтров к сетке динамически переконфигурировать
- 13. Привязать DataTable к gridview и добавить Edit Capability к сетке
- 14. Привязать окно к другому окну и всегда сверху
- 15. Не удается привязать анимацию к сетке?
- 16. «Привязать» импортированные файлы к сетке - three.js
- 17. jQuery UI, привязать к сетке, создать сетки?
- 18. Как применить хранилище к выноску в ExtJS?
- 19. Как привязать мою форму к окну приложения третьей стороны?
- 20. Как я могу привязать к окну, в котором находится привязка?
- 21. как: привязать вызов unbeforeunload к окну, если вызывается функция (param)?
- 22. Meteor JS: Как мне привязать события к окну в Метеор?
- 23. Как привязать к службе в Android 5?
- 24. добавление данных хранилища на сетке Extjs (3)
- 25. Привязать холст к окну, когда холст перетаскивается в pyqt
- 26. Привязать курсор мыши к сетке и/или объектам
- 27. Пейджинг в сетке extjs
- 28. PagingMemoryProxy в сетке extjs
- 29. ExtJS 4.2.x: Дерево привязано к сетке
- 30. Могу ли я привязать гнездо FloatingActionButton к окну просмотра?
Да, спасибо, но я Мне кажется, что это не чистый подход MVVM, но в сочетании с MVC, поскольку вы используете глобальный контроллер и не привязываете хранилище к сетке с помощью директивы 'bind'. Меня интересовал способ привязки данных в модальной форме и сетке через общую виртуальную машину. Поскольку согласно документам это невозможно. – leshicus
Перу Эвана в вашей теме форума, два компонента не могут использовать один и тот же ViewModel. – arthurakay