vue返回后重置页面数据

在列表页使用vue传值给详情页后,详情页中又增加了新的数据请求vue渲染,但是返回后打开另一个详情页vue数据还在,没有重置,vm数据重置了,但是再次请求的item数据还在,依旧重复使用。

//窗口隐藏时,重置页面数据
            mui.plusReady(function () {
                var self = plus.webview.currentWebview();
                self.addEventListener("hide",function (e) {
                    window.scrollTo(0, 0);
                    vm.resetData();                
                },false);
            });

这是页面vm数据的重置代码,怎么重置item数据呢?

    var news = new Vue({
                el: '#news',
                data: {
                    items: [], //列表信息流数据
                },
            function convert(items) {
                var newItems = [];
                items.forEach(function(item) {
                    newItems.push({
                        id:             item.id,    
                        useride:         item.useride,
                        fukanid:         item.fukanid,                        
                        pingtime:         item.pingime,    
                        avatars:        'http://werd.imwork.net:90/public/'+item.avatars,
                        time:             getDateDiff(item.pingtime),
                        usernames:        item.usernames,    
                        pingcongtent:    item.pingcongtent,
                    });
                
                });
                                
                return newItems;
                
            };

这是新的vue请求数据,请问怎么点击返回后将item的数据也重置呢??

阅读 5.5k
2 个回答

终于解决了,在返回逻辑中加入刷新数据页面(window.location.reload();)即可:

            //重写返回逻辑
            mui.back = function() {
                plus.webview.currentWebview().hide("auto", 300);
                window.location.reload();
            };

这种没有执行的问题,应该给出完整的引用链.现在这个样子,断在任何地方都会导致没有执行.
去jsfiddle写个完整点的例子吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题