如何在Sencha Architect中创建一个函数?

时间:2012-05-01 18:34:11

标签: function extjs sencha-architect

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中编写它们?

2 个答案:

答案 0 :(得分: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)

以下是如何在架构师中使用基本功能的方法:

  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()