How to loop in Vue.js?

YVS1102

I'm trying to create a menu with , but my menu isn't showing up. Here is what I have tried:

<div id="app" class="container">
    <b-menu v-for="menu in menu_items" v-bind:data="menu.menu_list" v-bind:key="menu.menu_list">
        <label>{{ menu.menu_list }} </label>
            <b-menu-list v-for="menu_item in menu_items.menu_list" v-bind:data="menu_item" v-bind:key="menu_item.message">
                <b-menu-item  > {{ menu.message }}</b-menu-item>
            </b-menu-list>
    </b-menu>
</div>

And here is my Vue.js code:

var App = new Vue({
    el: '#app',
    data: {
     menu_items: [{
            menu_list : 'General' [
                    { message: 'First Menu' },
                    { message: 'Second Menu' }
                ],
            menu_list : 'Setting' [
                { message: 'First Setting Menu' },
                { message: 'Second Setting Menu' }
            ]
        }]
    }
})

Any solution(s)?

What i want to achieve

 - General
    - First Menu
    - Second Menu
 - Setting
    - First setting Menu
    - Second setting Menu
Bert

I'd suggest an alternate data structure.

menu_items: [
  {
    label: "General",
    items: [
         {
          message: 'First Menu'
        },
        {
          message: 'Second Menu'
        }   
    ]
  },
  {
    label: "Settings",
    items: [
        {
          message: 'First Setting Menu'
        },
        {
          message: 'Second Setting Menu'
        }   
    ]
  }
]

In the above structure, each menu is an object that has a label and a list of menu items.

Then you could build your template this way:

<b-menu v-for="menu in menu_items" v-bind:key="menu.label">
    <label>{{ menu.label }}</label>
    <b-menu-list v-for="item in menu.items" v-bind:key="item">
      <b-menu-item> {{ item.message }}</b-menu-item>
    </b-menu-list>
</b-menu>

I took out the v-bind:data properties. I'm not sure what they are for.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Java

Vue.js infinite loop on component re-render

From Java

How to use img src in vue.js?

From Java

How to add dynamic ref in vue.js?

From Java

How to disable input conditionally in vue.js

From Java

How to comment code in a vue.js file?

From Java

How to access the window object in vue js?

From Dev

How to do transclusion in vue.js?

From Dev

Angular/Vue.js loop through two objects in same directive

From Dev

How to unbind an array copy in Vue.js

From Dev

How to Set A Methods For A Class In Vue.js

From Dev

How to animate the sorting of a list with Vue.js

From Dev

How to pass to Vue-JS several components?

From Dev

How to make rails work with vue.js?

From Dev

how to display nested objects in vue.js

From Dev

vue js v-for loop display item only once

From Dev

How to integrate WebStorm with Vue.js

From Dev

Vue.js How to calculate totals?

From Dev

Two Separate Arrays and V-For Loop and V-IF in Vue JS

From Dev

With Vue.js, How to use a modal component inside v-for loop?

From Dev

How to put html into js loop

From Dev

How to calculate the total in vue component ? Vue.JS 2

From Dev

How to post from vue form to php file in Vue.js

From Dev

How to Make Loop in Angular JS

From Dev

Node JS: How to Promise For Loop

From Dev

In Vue.js app; how to add 'active' class to button in v-for loop

From Dev

Loop variables in Vue.js similar to AngularJS

From Dev

[Vue.js2]How to use debounce in deep watch in Vue

From Dev

how to get v-for loop data from outside of loop also in vue.js

From Dev

How to make a v-for loop of DIVs and show them by part (Vue.js)