当前位置:   article > 正文

ExtJs的CRUD操作及sync()的作用_extjs sync

extjs sync
CRUD操作指的是create , update,read , destroy四个操作。指的是对ExtJs的前台数据Store的增加,修改,加载(load,也可以说是查询),删除四个操作。下面先看使用实例,首先要现在store里面定义api。
  1. var grid = Ext.create('Ext.tree.Panel', {
  2. store:Ext.create('Ext.data.TreeStore', {
  3. autoLoad:true,
  4. model: 'home.menu',
  5. root:{
  6. menu_id:0,
  7. menu_name:'ROOT'
  8. },
  9. proxy:{
  10. type:'ajax',
  11. api:{
  12. create:'create.action',
  13. update:'update.action',
  14. read:'read.action',
  15. destroy:'destroy.action'
  16. },
  17. reader:{
  18. root:'result',
  19. totalProperty:'totalCount'
  20. }
  21. }
  22. }),

上面代码的意思是在store中定义当我们对store进行add(),updaterecord(),load(),remove()四个操作时相对应的操作URL。下面是extjsAPI里面的定义

  1. api : Object
  2. 指定的urls中所调用的CRUD,即"create""read""update""destroy"操作方法。默认为:
  3. api: {
  4. create : undefined,
  5. read : undefined,
  6. update : undefined,
  7. destroy : undefined
  8. }
  9. 该url的生成基于使用对应的api属性中所执行[create|read|update|destroy]的动作action, 或者如果为undefined则默认为已配置的 Ext.data.Store.url
  10. 示例:
  11. api: {
  12. create : '/controller/new',
  13. read : '/controller/load',
  14. update : '/controller/update',
  15. destroy : '/controller/destroy_action'
  16. }
  17. 如果指定的URL对于所给定CRUD动作为undefined, 那么CRUD的action请求将指向已配置的url。
下面是使用的DEMO、

修改(update   U):

  1. form.getForm().updateRecord(form.getForm().getRecord());
  2. grid.getStore().sync();
删除(destory  D)

  1. var r = form.getForm().getRecord();
  2. r.remove();
  3. grid.getStore().sync();
加载(Read   R )

 grid.getStore().load();

增加(Create  C)

  1. grid.getStore().add(form.getForm().getValues());
  2. grid.getStore().sync();
  1. 不懂大家注意到了没有 在CUD操作后,都有一个sync()操作。如果在store中设置了autoSync:true的话。就可以省略sync()操作。下面是autoSync的API解释:
  2. autoSync : Boolean
  3. 'true'表示每当对一条Record记录完成修改后, 都将对StoreProxy进行同步. 默认为'false'.
  4. Defaults to: false
最后还有一点需注意的是:除了R是get请求外,CUD操作传到后台的数据都是以字符流的形式传输的。不是以post/get的方式传输的。所以在后台接收的时候,需要注意。下面给出一段PHP接收CUD传送的数据的代码:

  1. public function getPut()
  2. {
  3. $raw = '';
  4. $fp = fopen('php://input', 'r');
  5. while ($kb = fread($fp, 1024)) {
  6. $raw .= $kb;
  7. }
  8. $params = json_decode($raw, true);
  9. if (count($params) && !isset($params[0])) {
  10. $params = array($params);
  11. }
  12. $_POST['php_input'] = $raw;
  13. return $params;
  14. }
基本上CRUD的操作的注意点都在这里了。不足的我会慢慢补充,求指正


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/322257
推荐阅读
相关标签
  

闽ICP备14008679号