Closed sixiakun closed 7 years ago
就你上的代码而言,并不能确定你是否正确地在数据获取到后才进行reset。
代码未优化,写的有点乱,不过确实是获取后调用的,请指点。。 methods:{ hideFilter (cond,subm) { this.$emit('hideFilter') if(subm) $.extend(this.condition, cond) this.offset = 0; this.showLd = true; this.hasNext = true; this.$refs.list.enablePullup() this.loadData(this.reset(true),true) }, getDefault () { this.$http.get('/merp.h5/api/base/warehouse/default').then(res=>{ this.condition.warehouses = res.data.id; this.loadData() }) }, loadData (reset,notAdd) { this.$http.get('/merp.h5/api/stock/list/item',{ params:{ category: this.condition.category||null,// 分类 brand: this.condition.brand||null,// 品牌 warehouses: this.condition.warehouses,// 仓库 storageName: null, keyword: null, offset: this.offset, limit: 20, // 只显示预警 warn: false, _s:this.$store.state.session }}).then(res=>{ if(!res.data.datas[0]){ this.showErr = true this.errMsg = '没有数据' } this.showLd = false; if(notAdd) this.data = res.data.datas else this.data = this.data.concat(res.data.datas); this.offset += res.data.limit; if(!res.data.hasNext){ this.$refs.list.disablePullup() this.hasNext = false } if (reset) reset() }).catch(err=>{ this.showErr = true this.errMsg = err; }) }, infiniteData(){ this.loadData(this.reset) }, reset(backT){ if(backT)this.$nextTick(()=>{ this.$refs.list.reset({top:0}) }); else{ this.$refs.list.donePullup() this.$nextTick(this.$refs.list.reset); } }
代码也太没有可读性了,自行格式化吧。
``` js
```
不会用markdown,有点苦逼,一个个空格敲上去。。,请指点 methods:{ hideFilter (cond,subm) { this.$emit('hideFilter') if(subm) $.extend(this.condition, cond) this.offset = 0; this.showLd = true; this.hasNext = true; this.$refs.list.enablePullup() this.loadData(this.reset(true),true) }, getDefault () { this.$http.get('/merp.h5/api/base/warehouse/default').then(res=>{ this.condition.warehouses = res.data.id; this.loadData() }) }, loadData (reset,notAdd) { this.$http.get('/merp.h5/api/stock/list/item',{ params:{ category: this.condition.category||null,// 分类 brand: this.condition.brand||null,// 品牌 warehouses: this.condition.warehouses,// 仓库 storageName: null, keyword: null, offset: this.offset, limit: 20, // 只显示预警 warn: false, _s:this.$store.state.session }}).then(res=>{ if(!res.data.datas[0]){ this.showErr = true this.errMsg = '没有数据' } this.showLd = false; if(notAdd) this.data = res.data.datas else this.data = this.data.concat(res.data.datas); this.offset += res.data.limit; if(!res.data.hasNext){ this.$refs.list.disablePullup() this.hasNext = false   ; } if (reset) reset() }).catch(err=>{ this.showErr = true this.errMsg = err; }) }, infiniteData(){ this.loadData(this.reset) }, reset(backT){ if(backT)this.$nextTick(()=>{ this.$refs.list.reset({top:0}) }); else{ this.$refs.list.donePullup() this.$nextTick(this.$refs.list.reset); } }
试了下 ,第一次数据少高度还是那么高,再请求数据少的就没有那么高了
vux 2.0.13 chrome模拟开发,iPhone模拟 初始获取数据,使用了pullup, 更换筛选条件,获取的只有一个数据,调用了 ,还是有很长的滚动条 ,请问是有重新计算高度的方法吗