MUI+Hbuilder之列表页到详情页面(四)

2018-09-26  本文已影响290人  喵呜Yuri

常见的列表页面跳转至某个详情页面的操作。
基于vue.js
列表页:listview.html:

html:
    <div class="mui-scroll">
                    <ul class="mui-table-view">
                        <li class="mui-table-view-cell mui-media" v-for="item in items">
                            <a href="javascript:;" :data-guid="item.guid" @tap="open_detail(item)">
                                <img class="mui-media-object mui-pull-left" :src="item.cover">
                                <div class="mui-media-body">
                                    <div class="mui-ellipsis-2">{{item.title}}</div>
                                </div>
                                <div class="meta-info">
                                    <div class="author">{{item.author}}</div>
                                    <div class="time">{{item.time}}</div>
                                </div>
                            </a>
                        </li>
                    </ul>
                </div>

js:
      var webview_detail = null; //详情页webview
       mui.plusReady(function() {
                //预加载详情页
                webview_detail = mui.preload({
                    url: 'detail.html',
                    id: 'news_detail',
                    styles: {
                        "render": "always",
                        "popGesture": "hide",
                        "bounce": "vertical",
                        "bounceBackground": "#efeff4",
                        "titleNView": titleNView
                    }
                });
        });
    function open_detail(item) {
                //触发子窗口变更新闻详情
                mui.fire(webview_detail, 'get_detail', {
                    guid: item.guid,
                    title: item.title,
                    author: item.author,
                    time: item.time,
                    cover: item.cover
                });

                //更改详情页原生导航条信息
                titleNView.titleText = item.title;
                webview_detail.setStyle({
                    "titleNView": titleNView
                });
                setTimeout(function() {
                    webview_detail.show("slide-in-right", 300);
                }, 150);
}

详情页:detail.html

document.addEventListener('get_detail', function(event) {
    var guid = event.detail.guid;
        var title =  event.detail.title;
        ...
});
上一篇下一篇

猜你喜欢

热点阅读