详细问题描述:
对于 hello-mui/examples/best-practices/list-to-detail 中的 listview.html 和 detail.html :
1、每个文章点开,阅读到一定进度(滚动条下滚一定距离后),返回首页再进入其他文章,即使是第一次阅读,也会到达同样的进度;
2、每次下拉刷新时,发现只有bannner得到刷新,而下面的文章列表没有得到刷新。关于这一点,我已经认真尝试了诸多次,发现只有退出这个listview.html,然后重新进入listview.html时,下面的文章列表才能得到刷新(见图1、2)。也就是说,下拉刷新没有使得下面的文章列表没有得到刷新,或者是请求到了json数据,但是数据没有被正确得显示到界面上。我觉得是如下代码有一些问题,但是我水平不高,并不敢确定:  
hello-mui/examples/best-practices/list-to-detail/listview.html 中的138-145行,这个 data 和 lastID 变量的使用没有明白:
                            var data = {  
                                column: "id,post_id,title,author_name,cover,published_at" //需要的字段名  
                            }  
                            if(lastId) { //说明已有数据,目前处于下拉刷新,增加时间戳,触发服务端立即刷新,返回最新数据  
                                data.lastId = lastId;  
                                data.time = new Date().getTime() + "";  
                            }  
                            //请求顶部banner信息  
                            mui.getJSON("http://spider.dcloud.net.cn/api/banner/36kr", data, function(rsp) {  
                                news.banner = {  
                                    guid: rsp.post_id,  
                                    title: rsp.title,  
                                    cover: rsp.cover,  
                                    author:rsp.author_name,  
                                    time:dateUtils.format(rsp.published_at)  
                                };  
                            });  
                            //请求列表信息流  
                            mui.getJSON("http://spider.dcloud.net.cn/api/news", data, function(rsp) {  
                                mui('#list').pullRefresh().endPulldown();  
                                if(rsp && rsp.length > 0) {  
                                    lastId = rsp[0].id; //保存最新消息的id,方便下拉刷新时使用  
                                    news.items = news.items.concat(convert(rsp));  
                                }  
                            });  
                        }  
                    }  
                }  
            });以及,上面的concat函数是把数据接到了后面?这样会不会导致数据在后面而没有显示在前面?
图1:下拉之后,banner得到了刷新,而下面的文章列表没有得到刷新
图2:返回到上一界面,再重新进入这个界面时,下面的文章列表才得到刷新
重现步骤
[步骤] 见图1、2
[结果] 只有bannner得到刷新,而下面的文章列表没有得到刷新
[期望] banner和下面的文章列表应该都能得到刷新  
运行环境
[系统版本]ios 10
[浏览器版本]
[IDE版本] HBuilder 8.8.0.201706142254
[mui版本] 8.8.0.201706142254  
附件
[代码片段] 代码包见附件,问题文件是 examples\best-practices\list-to-detail\listview.html
[安装包]  
联系方式
[QQ]
[电话]
[邮箱] 1227550364@qq.com  
 
             
             
             
			 
                                        
                                     
                                                                    

 
                                                                    
 
                                                                     
            
秦安 (作者)
你好,第2个问题你说的很对,感谢解决。
第1个问题,我刚看了你们github已经加上了你附上的这一段代码,但是目前hbuilder自建的hello mui还不带这一段代码,希望尽快加上,确实是这段的问题。但加上这一段代码之后,就失去了记录阅读进度的功能。比较理想的是,点击一个新闻的时候,能够记录这一条新闻的阅读进度,再重新点击这一条新闻能够接着继续阅读。而点击还未阅读的新闻的时候是停靠在最上面。希望可以改进一下,谢谢!
2017-07-21 17:10