禁止自动填充
禁止自动填充
最近一周,都是做会议预约的代码改进工作。大部分都是一些没有含量的但是枯燥的操作。下面记录了两个改进。如下:
谷歌浏览器的自动填充功能
不明白其中的原理,网上也找不到好的解决方式。自己按下面处理,效果还不错,暂未发现其他问题。在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; //最好不要这样用。
}
],