搜索过的问题集合(主要是Ext.js5)

用Excel做了每一日的工作总结,搜索到了什么问题,学习到了什么方法。积累了很多。公司在来年会用winform开发,用C#写。这不是我的技术方向,所以开年后我会去往北京。这些链接做一个整理。
我很舍不得这个公司,我是个新手,没有编程的基础,专业也不和计算机相关。我从入职的第一天开始就想要发挥自己的能力。我拼命的做,但是总不能得到自己的满意。因为我在这个公司实在学习到了太多的东西,我只是希望我的付出能回报给帮助我的善良的人们。做出离职的决定让我煎熬了很久,一方面是舍不得,一方面是对北京的恐惧。我是一个懦弱的人,我害怕那些未知的未来。我没有足够的实力来应对各种各样的突变。我害怕的不行,哭了好几个晚上,人也瘦了。我是一个诚实对待自己欲望的人,但是选择就是选择了。本性是不堪的,但是我选择勇敢一点。我的本性和我的选择都是我这个人。我想到这件事儿,就会红眼睛。离职的话,有好多好多想说的话,但是又怕人觉得矫情(怕人觉得我奇葩,怕人觉得我作假,怕人不理解我从哪里积攒了这么多感情)。所以还是不说了。想要写下来。
离开的时候我想说:“谢谢!”“我话很少,技术不行但自尊心却很高,爱较真,对不起。”“我有没有发挥出一点价值呢?”“我不想拖后腿,我觉得自己比较努力,但是我真的做到了么?”“有空翻译整理出Ext.js5的3.0版本想寄回来”(也许能用到,也许用不到,好担心自己这个做法很多余)“这5个月成长了很多,学习到很多,经历了很多,做了很多错事儿傻事儿,最后决定去往北京都是麻烦你从背后推了我一把,真的谢谢!”“谢谢你给我讲了那么多道理”不敢说出这些话。
接下来做资源的整理:
1、以下都是介绍Xtemplate模板的:
ITYPE是个好的资源地 http://cavenfeng.iteye.com/blog/1439803
博客园 http://www.cnblogs.com/lipan/archive/2011/12/12/2274740.html
2、Xtemplate的基本使用(如何给指定的控件覆写数据 tpl.overwrite),我是想在整个页面加载和渲染完了之后对指定的panel.body进行自定义的模板覆写操作,怎么不需要手动的触发事件得到panel.body?(使用listeners监听render事件,这个有在另一个文章整理过)
3、改变panel的背景颜色 “bodyStyle”,时间’添加日期:{[new Date().toLocaleDateString()]}’,这是用在了模板中
4、树的右键菜单的实现 http://www.bubuko.com/infodetail-1123558.html
5、树
征服那个树 http://www.cnblogs.com/mrye/archive/2013/05/26/3100431.html征服那个树英文文档 http://docs.sencha.com/extjs/5.1/components/trees.html#Dynamically_Loading_Children_When_a_Node_is_Expanded
sencha所有的文档http://docs.sencha.com/
6、AjaxProxy会自动将排序,过滤,翻页和分组参数添加到生成的url中. 可以使用下面这些属性来配置这些参数 http://www.bkjia.com/webzh/932310.html
树的教程 http://ishowshao.com/blog/2012/08/17/extjs-4-trees/
7、树上有好多事件,比如beforeitemexpand,itemclick ,在create的时候如何发送请求数据的参数给服务器,请求参数是在控制器里面获得的(在树的整理代码里面有做整理,有四个传递参数的方法)How to use api property in config of store proxy - the CRUD Methods
http://stackoverflow.com/questions/13252248/how-to-use-api-property-in-config-of-store-proxy-the-crud-methods
树的动态加载及节点维护 http://blog.csdn.net/tianxiaode/article/details/7667891 ,如何getstore ,how to use store sync
为什么本应该加载creat请求后面的参数加载了其他请求后面?(这个坑没有得到优雅的解决,我把增删改的api接口用ajax请求分开写了,不是在一个store里面,就避免了这个问题。感觉很遗憾!)
8、getMdel的方法 http://stackoverflow.com/questions/7445900/extjs-4-0-store-how-to-find-fields-in-the-store-or-model
树的必备属性 http://onebyte.blog.51cto.com/3320326/1165195
9、word2007使用smart http://www.wordlm.com/html/4143.html,因为Ext.js页面嵌套好多,想做一个结构图。后来发现太复杂用smart解决不了,做了一个手写版本。很好看!
搜索过的问题集合(主要是Ext.js5)_第1张图片
是挺好看的,就是有点麻烦。周末的时候可以弄一弄,陶冶情操。不过我这样写总结被老大狠狠吐槽了。“还不如写博客了”这样说,我觉得他说的对。偶尔我会手写一下。
10、能不能给视图同时引入多个控制器 不能,是一一对应的, how to find fields in the store (or model) getModel方法 ,raplaceChild insertChild等等
11、好多例子引入控制器的时候都是controller,但是实际上一定要携程controllers!我不知道改怎么评价这个发现,哈哈
12、renderTo (Do not use this option if the Component is to be a child item of a Container),图片渲染http://dev.sencha.com/ext/5.0.0/examples/view/data-view.js
13、监听事件只能加到store{}绑定的数据里面(这里指的是用dataview渲染),所谓的先做最基础的,一步一步来算是深有体会。一开始觉得要把文件结构,然后各种出问题,比如define一个view继承自Ext.view.View各种出问题,现在直接在item里面create了Ext.view.View实例就方便很多,所以我认为只要文件内容不太大的就不用结构。结构的太细反而会变得非常的混乱。昨晚之后就只有一个想法,这么简单的问题老大肯定1秒钟解决完。老大的工作效率是我的10倍,一点都不夸张。然而老大的工资并没有我的十倍。因为成都的工资普遍偏低。
14、Ext有非常多的查找组件的方法,忍无可忍做一个整理。在树的控制器中用了最后一种引用的方法,觉得特别特别的优雅,特别特别的好。代码在树的那篇文章里。

  1. Ext.get() get方法其实是Ext.Element.get的简写形式。get方法中只有一个参数,这个参数是混合参数,可以是DOM节点的id、也可以是一个Element、或者是一个DOM节点对象等。
  2. Ext.getDom() 参数可以是DOM节点的id、DOM节点对象或DOM节点对应的Ext元素(Element)等
  3. Ext.getCmp() 参数只能是组件的id
  4. Ext.getBody()得到文档的body节点元素
  5. Ext.getDoc() 得到当前html文档对象
  6. Ext.componentQuery.query() 参数”#组件ID”必须要有#
  7. Ext.ComponentQuery.query(‘panel>button’,panel) 得到某一组件下所有的指定类型的组件:”panel>button“,这种方式是查找所有panel组件下的所有button组件 // 获得panel下的所有button,这个需要注意,button必须在panel下的第一层,如果中间跨层是找不到的,如:’viewport>button’是找不到button的,因为中间有一层panel
  8. xt.componentQuery.query()参数可是是xtype
  9. Ext.componentQuery.query() 可以通过属性查找
    var items =Ext.ComponentQuery.query(‘button[action=save]’,panel);
  10. dowm()和up()参数是xtype 在窗口下查找form为win.dowm(‘form’)
  11. refs Refs是一个查找并匹配组件的集合,集合里面则指定了需要的操作,即查找一个组件,而找到的这个组件所匹配组件就是selector指定的 例子:{ref: ‘feedData’, selector: ‘feedlist dataview’} 这条的含义是查找’feedData’,将’feedData’渲染在’feedlist的子组件dataview’上。

15、将下拉框选定的值绑定到dispalyfield上
https://www.sencha.com/forum/showthread.php?299301-Bind-combobox-displayField-value-to-displayfield
ExtJS Bind Form Fields to ViewModel Store Params
Leave a reply
http://www.extjstips.com/2015/10/06/bind-form-fields-to-viewmodel-store-params/
提交表单(新增)
https://docs.sencha.com/extjs/4.1.1/guides/forms/examples/model_binding/app.js
combobox如何绑值

 {
                   xtype: 'combo',
                   fieldLabel: '',
                   id: 'usersex',
                   name: 'epGender',
                   width: 70,
                   margin: '0 5 0 0',
                   editable: false,
                   displayField: 'name',
                   //value:'0',
                   valueField: 'value',
                   allowBlank: false,
                   bind: '{addusers.epGender}',
                   store: {
                       fields: ['name', 'value'],
                       data: [
                       //{ name: '性别', value: '2' },
                       { name: '女', value: '0' },
                       { name: '男', value: '1' },
                       ]
                   }
               },

16、报错 [E] Ext.data.proxy.Server.buildUrl(): You are using a ServerProxy but have not supplied it with a url.这个问题其实没有弄懂
17、树节点端口
http://docs.sencha.com/extjs/5.1/5.1.1-apidocs/#!/api/Ext.data.NodeInterface
18、上传图片接口
http://docs.sencha.com/extjs/5.1/5.1.1-apidocs/#!/api/Ext.form.field.File ,上传图片不能简单使用ajax请求
19、将 JavaScript 对象表示法 (JSON) 字符串转换为对象,typeof()知道数据类型
20、预览图片 http://blog.fengxiaotx.com/?p=373
21、 解码请求头

  var head = window.localStorage.header;
        function urlBase64Decode(str) {
            var output = str.replace(/-/g, '+').replace(/_/g, '/');
            switch (output.length % 4) {
                case 0: { break; }
                case 2: { output += '=='; break; }
                case 3: { output += '='; break; }
                default: {
                    throw 'Illegal base64url string!';
                }
            }
            return decodeURIComponent(escape(window.atob(output))); //polifyll https://github.com/davidchambers/Base64.js
        }


        var parts = head.split('.');
        alert(urlBase64Decode(parts[1]))

22、chrome fakepath(浏览器安全性设置影响上传文件的路径)
完毕,这是一个月的积累。没有在工作的一开始就用Excel记录真是后悔。这个记录的想法也是在工作着的时候突然就冒出来的。

你可能感兴趣的:(Ext.js项目)