2012-05-01 2 views
3
Ext.Ajax.request({ 
    url: 'foo.php', // where you wanna post 
    success: passFn, // function called on success 
    failure: failFn, 
    params: { foo: 'bar' } // your json data 
}); 

Я следую How to post json data with extJS и получил вопрос о функциях. Я вижу, что мы можем встраивать функции прямо в область passFn и failFn. Однако, если я хочу, чтобы эти функции были в другом месте? Где создавать эти функции и кодировать их в Sencha Architect?Как создать функцию в Sencha Architect?

ответ

4

Вы может создать папку, находящуюся вне элемента управления Sencha Architect, и вызвать ее изнутри вашего кода Architect.

Например, мне нравится создавать папку под названием «util». Так вот, что ваша структура папок будет выглядеть следующим образом:

app 
    -- controller 
    -- model 
    -- store 
    -- view 
    -- util <--- I added this directory 
     -- MiscFunctions.js <-- your own class file 

Внутри MiscFunctions.js, вы можете создать класс следующим образом:

Ext.define('MyApp.util.MiscFunctions', { 
    singleton: true, 
    passFn: function() { 
     ... 
    }, 
    failFn: function() { 
    } 
}); 

Тогда вы можете обратиться к этим функциям внутри вашего кода Architect :

Ext.Ajax.request({ 
    url: 'foo.php', // where you wanna post 
    success: MyApp.util.MiscFunctions.passFn, // function called on success 
    failure: MyApp.util.MiscFunctions.failFn, 
    params: { foo: 'bar' } // your json data 
}); 

не забудьте добавить

singleton: true 

, иначе вам придется создать экземпляр этого класса для использования функций внутри.

1

Вот как вы можете использовать основные функции архитектора:

  1. Создание контроллера.

  2. Добавить действие контроллера и установить его атрибуты следующим образом:

    controlQuery: '#btn1', // (a button component with id "btn1") 
    targetType : Ext.Button, // (component type) 
    fn   : onBtn1Tap, // (function name) 
    name  : tap // (event) 
    
  3. Добавить основную функцию и установить его атрибуты:

    fn: basicFunction (function name) 
    
  4. Теперь вы можете использовать эту основную функцию в onBtn1Tap : this.basicFunction()

Смежные вопросы