ExtJS 4.2.0: Ext.Direct и пространства имен

Я только начинаю присматриваться к Ext Direct и пытаюсь заставить пространства имен работать с ним. Однако мне не очень везет.

Следуя документации (http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.direct.RemotingProvider-cfg-disableNestedActions) Я пробовал это:

Ext.Direct.addProvider({
    url: 'router',
    type: 'remoting',
    actions: {
        TestAction: {
            name: 'foo',
            len:  1
        },
        'TestAction.Foo': {
            name: 'bar',
            len: 1
        }
    },
    namespace: 'MyApp'
});

MyApp.TestAction.Foo.bar();

Однако теперь я получаю сообщение об ошибке «У объекта нет панели методов».

Кто-нибудь знает, почему это происходит?

Спасибо


person user1578653    schedule 29.07.2013    source источник


Ответы (1)


Определения методов должны быть массивом объектов, а не объектами.

Таким образом, без ошибок:

Ext.Direct.addProvider({
    url: 'router',
    type: 'remoting',
    actions: {
        TestAction: [{ // <= Here, array!
            name: 'foo',
            len:  1
        }],
        'TestAction.Foo': [{
            name: 'bar',
            len: 1
        }]
    },
    namespace: 'MyApp'
});
person rixo    schedule 29.07.2013
comment
+1 Это верно в соответствии с описанием actions в документации Ext.direct.RemotingProvider: docs.sencha.com/extjs/4.1.3/#!/api/ - person John Hall; 29.07.2013
comment
Да это работает! Кажется, что в некоторых местах их документация неверна... - person user1578653; 30.07.2013