将商店更新写回服务器

时间:2011-08-16 15:25:13

标签: extjs sencha-touch

我已经阅读了Sencha教程,API和论坛一段时间,但是我遇到了一堵砖墙。我有一个mySQL / PHP后端存储Web应用程序的数据。我有以下Sench / ExtJS结构:

App.stores.user = new Ext.data.Store({
  model: 'User',
  proxy: new Ext.data.AjaxProxy({
      url: 'app/stores/scripts/connect.php',
      extraParams: {
          method:'user',
          user_id: 3
      },
      reader: {
          type:'json',
          root:'root'
      }
  }),
  autoLoad:true
});

数据很好地加载到商店,但我有一个直接更新用户实例的表单。

App.controllers.account =  new Ext.Controller({
    save: function (options) {
        options.user.set(options.data);
        options.user.save(); // Generates error: Uncaught Error: You are using a ServerProxy but have not supplied it with a url.
    }
});

如何成功实现/挂钩函数以将脏记录写回服务器?如何准备并通过请求?

谢谢。

1 个答案:

答案 0 :(得分:1)

Uptil Ext Js 3.3.1执行CRUD操作时,商店需要配置writer。只读是不需要的。这就是你的商店被加载但你在写操作期间遇到错误的原因。在您的情况下,您必须指定JsonWriter。此外,如果您没有以 restful 方式使用商店,那么您还需要指定一个HttpProxy对象来告诉商店哪个网址发布创建/更新/删除store

检查Ext 4的文档。我也应该在这里类似。