Ionic4 + VueJS汉堡包菜单

时间:2018-09-11 15:50:41

标签: javascript typescript ionic-framework vue.js ionic4

问题:如何为ionic v4 vuejs应用程序创建可滑动的侧边菜单?

因此,我是ionic的新手,并一直在尝试将现有的Web应用程序迁移到ionic。按照有关vue的ionic4的有限文章上的步骤进行操作。在安装Vue之前,我安装了@ ionic / core,将CDN添加到了索引文件,并为[/ ion /] Web compoenets添加了忽略标志。

我当前收到此错误:Menu: must have a "content" element to listen for drag events on.

我不太确定应该遵循什么,因为有关ion v2和v3的文章很多,我知道对ui组件的方式以及基于ionic4 beta docs的内容进行了一些更改似乎是正确的:'

<script lang="ts" src="./Layout.ts"></script>

<template>
    <div class="layoutComponent">
        <ion-page>

            <ion-menu>
                <ion-header>
                    <ion-toolbar color="primary">
                        <ion-title>Menu</ion-title>
                    </ion-toolbar>
                </ion-header>

                <ion-content>

                    <ion-list>
                        <ion-list-header>
                            Navigate
                        </ion-list-header>

                        <ion-item>
                            <router-link :to="{name: 'link 1'}">
                                <ion-label full>
                                    <eg-localizer token="1"></localizer>
                                </ion-label>
                            </router-link>
                        </ion-item>
                        <ion-item>
                            <router-link :to="{ name: 'link2'}">
                                <ion-label full>
                                    <localizer token="2"></localizer>
                                </ion-label>
                            </router-link>
                        </ion-item>
                        <ion-item>
                            <a target="_blank" href="https://foo.com">
                                <ion-label full>
                                    <localizer token="external link 3"></localizer>
                                </ion-label>
                            </a>
                        </ion-item>
                    </ion-list>
                </ion-content>
            </ion-menu>

            <!-- main point of entry for app content -->
            <slot></slot>

        </ion-page>
    </div>
</template>

2 个答案:

答案 0 :(得分:0)

有关离子框架的文档尚不清楚或不完整,但是我能够使菜单正常工作

<template>
  <ion-menu side="start" content-id="menu-content">
    <ion-header>
      <ion-toolbar color="primary">
        <ion-title>Start Menu</ion-title>
      </ion-toolbar>
    </ion-header>
    <ion-content id="menu-content">
      <ion-list lines="full">
        <ion-item v-for="item in items" :key="item.name">
          <ion-icon :name="item.icon" slot="start"></ion-icon>
          <ion-label>{{ item.name }}</ion-label>
        </ion-item>
      </ion-list>
    </ion-content>
  </ion-menu>
</template>

<script>
export default {
  data () {
    return {
      items: [
        { name: 'Home', icon: 'home', href: 'home' },
        { name: 'About', icon: 'information-circle', href: 'about' },
        { name: 'Articles', icon: 'list-box', href: 'articles' },
        { name: 'Log out', icon: 'logout', href: 'logout' }
      ]
    }
  }
}
</script>

关键在这里:

<ion-menu side="start" content-id="menu-content">

在这里

<ion-content id="menu-content">

希望这对任何人都有帮助。

答案 1 :(得分:0)

对于Ionic 6 + Vue js 3.0,请确保将组件<ion-router-outlet />放在<ion-content>中,并且ion-content应该具有您在菜单的content-id参数中指定的id。

  <ion-content id="main">
    <ion-router-outlet />
    </ion-content>