禁止自动填充

禁止自动填充

最近一周,都是做会议预约的代码改进工作。大部分都是一些没有含量的但是枯燥的操作。下面记录了两个改进。如下:

谷歌浏览器的自动填充功能

不明白其中的原理,网上也找不到好的解决方式。自己按下面处理,效果还不错,暂未发现其他问题。在change函数中,重新复制,防止会造成死循环。通过计数的方式。

change:function(cmp, newValue, oldValue, eOpts){
                var me = this.up('selectusergrid');
                if(me.resetValue&&!this.hasFocus){
                    me.resetValue=false;
                    this.setValue('');
                }
                me.searchValue = newValue;
            },

过滤掉admin字段

思维过程:最开始想在后台进行过滤,但是发现,后台的api接口在多个地方调用,不太方便过滤,有的地方还需要显示admin用户。后来就想,直接在store的load事件中,进行过滤。刚想使用Ext.each的时候发现filter函数更好用,然后就想用filter函数。然后突然发现,其实直接使用store的filter不是更好吗?而且总条数也好了。以下是代码:

store:{
                fields:[
                    { name: 'login_name', type:'string'},
		           //注意下面的类型转换。
                    { name: 'user_id', type:'int'},
                    { name: 'role_name', type:'string'},
                    { name: 'employee_name', type:'string'},
                    { name: 'department_name', type:'string' }
                    //{ name: 'create_time', type:'string' }
                ],
                pageSize:100,
                proxy: {
                    type: 'ajax',
                    method:"POST",
                    url: SHINEVMSHTTP+'/admin/role/user/getuserinfo',
                    reader: {
                        type: 'json',
                        totalProperty:'count',
                        rootProperty:'result'
                    }
                },
                autoLoad: true,
                //下面是增加的代码。
                filters: [
                    function(item) {
                        //item实际上是record,最好用item.get来获取,
                        //至于此出的函数有没有经过类型转换,还不清楚
                        return parseInt(item.get('user_id')) > 1;
                        //return item.role_id > 1;  //最好不要这样用。
                    }
                ],