在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ Vue v-for兩層嵌套第二個元素事件失效

Vue v-for兩層嵌套第二個元素事件失效

問題描述

使用Vue的v-for嵌套,渲染出來的元素,第一個沒有問題,第二個不相應(yīng)點擊事件。

問題出現(xiàn)的環(huán)境背景及自己嘗試過哪些方法

相關(guān)代碼

// 請把代碼文本粘貼到下方(請勿用圖片代替代碼)

            <li class="layui-nav-item" v-for="menu in menus">
                <a href="javascript:;" v-bind:data-url="menu.url" data-name="form" kit-loader><i v-bind:class="menu.icon" aria-hidden="true"></i>
                    <span> {{ menu.name }}</span>
                    <span class="layui-nav-more"></span>
                </a>
                <dl class="layui-nav-child" v-for="sub_menu in menu.childMenus">
                    <dd>
                        <a href="javascript:;" kit-target v-bind:data-url="sub_menu.url">
                            <i aria-hidden="true" v-bind:class="sub_menu.icon"></i><span> {{ sub_menu.name }}</span></a>
                    </dd>
                </dl>
            </li>
            
            
var menuList = new Vue({
    el:'#menu_list',
    data: {
        menus :  
        [{
            "icon": "fa fa-tasks",
            "id": "WORK_TASK",
            "name": "工作任務(wù)",
            "order": 0,
            "url": "create_task",
            "childMenus": [{
                "icon": "fa fa-crosshairs",
                "id": "CREATE_TASK",
                "name": "任務(wù)管理",
                "order": 0,
                "parentId": "WORK_TASK",
                "url": "create_task"
            }]
        }]
    }
})

你期待的結(jié)果是什么?實際看到的錯誤信息又是什么?

第一個li的菜單可以折疊和展開,第二個不行。

回答
編輯回答
涼心人

搞定了,Vue new的時候data元素多設(shè)置幾個。
當這些數(shù)據(jù)改變時,視圖會進行重渲染。值得注意的是只有當實例被創(chuàng)建時 data 中存在的屬性才是響應(yīng)式的。也就是說如果你添加一個新的屬性,比如:

vm.b = 'hi'
那么對 b 的改動將不會觸發(fā)任何視圖的更新。如果你知道你會在晚些時候需要一個屬性,但是一開始它為空或不存在,那么你僅需要設(shè)置一些初始值。比如:

對于界面上的元素列表也需要這樣?data里面定義的時候只有一個元素,后面增加的也不會得到渲染。
定義的時候里面放十個,動態(tài)獲取到列表后全部刪除,0~9之內(nèi)的則會被渲染。

2017年8月29日 22:26