ExtJS 4 перетаскивает ожидание асинхронного действия, прежде чем принять решение о завершении удаления (или нет) - PullRequest
0 голосов
/ 02 апреля 2012

Используя ExtJS 4.07, у меня есть простое дерево, которое загружает данные с сервера:

<script type="text/javascript">
    Ext.onReady(function () {
        Ext.create('Ext.Viewport', {
            layout: 'border',
            items: [
                { id: 'centerpanel', region: 'center', layout: 'fit' },
            ]
        });

        var store = Ext.create('Ext.data.TreeStore', {
            proxy: {
                type: 'ajax',
                url: '/getlist'
            },
            root: {
                text: 'data',
                id: '/',
                expanded: true
            }
        });

        var treelist = Ext.create('Ext.tree.Panel', {
            id: 'tree',
            store: store,
            width: 500,
            height: 500,
            viewConfig: {
                plugins: {
                    ptype: 'treeviewdragdrop',
                },
            }
        });  

        Ext.getCmp('centerpanel').add(treelist);
    });
</script>

Проблема заключается в следующем: как мне ждать завершения асинхронного действия (например, всплывающего окна extjs илизапрос ajax) после перетаскивания элемента в другое место того же дерева.

Может ли кто-нибудь дать мне подсказку или указать правильное направление?

1 Ответ

0 голосов
/ 12 апреля 2012

Ответ на самом деле состоит в том, чтобы использовать beforedrop-событие древовидной панели, выполнить там асинхронное действие и вернуть false для события.

Но есть некоторые проблемы (и обходные пути), которые будут исправлены вследующий выпуск (4.1).

Описание проблемы, включая обходные пути, можно найти здесь:

http://www.sencha.com/forum/showthread.php?134642-Ext.tree.ViewDDPlugin-beforedrop-event-not-working-accordingly-the-API-docs

...