2012-08-04 125 views
-1

像往常一样,我尝试为我自己做这个,我阅读sencha touch 2使用商店的文档,但我不能做我想做的,我需要做一个快速的应用程序,可以帮助我说明如何在商店和代理中使用sencha touch,并且他们可以将此功能添加到我的真实项目中。所以,这就是我想要的:Sencha触摸存储和代理问题

Ext.define("ejemplo.view.Main", { 
    extend: 'Ext.Panel', 

    requires: [ 
     'Ext.form.FieldSet', 
    ], 

    config: { 
     fullscreen: true, 
     scrollable: true, 

     items: [ 
      { 
       xtype: 'fieldset', 
       title: 'Guardando Data', 
       centered: true, 

       items: [ 
        { 
         xtype: 'textfield', 
         label: 'Nombre', 
        }, 
        { 
         xtype: 'button', 
         ui: 'confirm', 
         text: 'Guargar', 

         handler: function(){ 
          //Store my data locally 
         }     
        } 
       ] 
      }, 
      { 
       xtype: 'button', 
       text: 'Almacen', 
       ui: 'action', 
       docked: 'bottom', 

       handler: function(){ 
        //Show the data 
       } 
      } 
     ] 
    } 
}); 

但是,我知道,这个快速的应用程序可以使事情变得更容易为需要站在如何存储数据到煎茶触摸本地所有球员和他们可以使用这些数据不管是什么我们需要。

简单地说,如果我制作文件并将该文件放入我的应用程序的路径中,但是当我想在其他设备上运行应用程序时,此解决方案无法工作。所以,请帮助

另外,当我做出并采取数据如何我可以从sencha touch做我的服务器的PUT请求?

+0

在这里你可以阅读教程如何使用HTML5本地存储本地存储和读取数据http://miamicoder.com/2012/how-to-create-a-sencha-touch-2-app-part -1/ – 2012-08-04 22:07:59

+0

感谢您的链接,我去阅读并做到这一点,也许可以解决我的问题。 – 2012-08-04 23:04:00

+0

解决:如果有人需要答案Oleg的代码是正确的,只需添加要求:[Ext.Ajax]解决问题。 – 2012-08-05 23:38:23

回答

1
Ext.Ajax.request({ 
    url : '/your/request/to/server/url', 
    method : 'GET', // You can set also method: 'PUT' (answer for 2nd question) 
    params : { // your params you want to send 
     user: 'Alexis 
    }, 

    success : function(response) { 
    ... 
    }, 

    failure : function(response) { 

    ... 
    }, 
}) 

在你可以通过

if (response.responseText) { 
    result = Ext.decode(response.responseText); 
} 

处理性反应的回调函数有一个看看Sencha doc更多信息

干杯,奥列格

+0

我读了文档,“使用AJAX”,但我不知道为什么如果我写Ext.Ajax.request({url:App.app.getApiUrl(request.url), method:request.method ||'POST ”, 标头:{ '内容 - 类型': '应用程序/ x-WWW窗体-urlencoded' }, PARAMS:request.params || {}, 成功:功能(响应){ .. }, failure:function(response){ ... }, })cosole说我不能请求未分割的对象:/ – 2012-08-04 23:08:15

+0

方法:字符串 用于请求的默认HTTP方法。请注意,这是区分大小写的,应该全部大写。没有办法发送PUT请求? 默认为undefined;如果没有设置,但参数存在将使用“POST”,否则“GET”。 – 2012-08-04 23:09:59

+0

我不忍心你想告诉我:/或者代码,可以我更多的说明? – 2012-08-04 23:14:08

0

@Alexis嗨,你可以尝试用简单的例子,所以这样,你站在如何运行代理到Sencha Touch

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<title>Whatever</title> 

     <link rel="stylesheet" href="sencha-touch/resources/css/sencha-touch.css" type="text/css" media="screen" /> 

    <script src="sencha-touch/sencha-touch.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
      Ext.onReady(function() { 
       Ext.Ajax.request({ 
         url: 'your_file_url', 
         params: { 
          format: 'json', 
         }, 
         success: function(response, opts) { 
          var info = Ext.util.JSON.decode(response.responseText) 
          alert(info) 
          console.dir(info) 
          console.log('Response:-:-:-: ' + response.responseText) 
        }, 
        failure: function(response) { 
          ... 
        }, 
       }) 
      }) 
    </script> 
</head> 
<body> 
</body> 
</html> 

上面的代码是为请求JSON文件一个简单的文件,这个代码你可以使用到handler: function() { ... }实例化的xtype: button

UPDATE

进入url: ''只放文件名,例如myFileJson.jsonmyFileJson.php或任何有效的扩展名。 :)

如果您有问题,请让我知道。

我希望能帮到你。 :)

+0

Thanks!^^让我看看我得到了什么! – 2012-08-05 18:40:34

+0

我不知道为什么,但似乎总是发生与Ext.Ajax.request东西,我不知道..对不起,再次问,但就像我说@olegtaranenko先生控制台显示我>>未捕获TypeError:无法调用未定义的方法'请求'。你能告诉我我缺少什么吗? – 2012-08-05 18:45:38

+0

也许可以是URL?我尝试使用这个URL:'http:// localhost:5984/mymoney/2' ,这是我的couchdb服务器,有一个http请求这个url返回一个带有两个文件的JSON – 2012-08-05 19:08:34