Vue.component('set-menu',{ template:'<ul><li v-for="item in ht" v-bind:data-id="item.id"><div @click="_click"><i class="s-font" v-bind:class="item.iconClass"></i>{{item.name}}</div><ul v-if="item.oth"><li v-for="items in item.oth"><i class="s-font" v-bind:class="items.iconClass"></i>{{items.name}}</li></ul></li></ul>', data:function(){ var datas; $.ajax({ type:"get", url:"data.json", async:false, cache:false, success:function(data){ datas=data.sites; } }); console.log(datas) return {ht:datas} }, methods:{ _click:function(){ this.$emit('click',function(){ alert(123) }) } } })
1 回答
慕尼黑8549860
TA贡献1818条经验 获得超11个赞
你可以好好看看你写的这个@click
函数,他是触发了这个'set-menu'
组件的click事件,并且把一个包含了alert操作的匿名函数当做了参数传给了'set-menu'
组件的click事件方法,所以这个要看'set-menu'
上的是click事件怎么处理的,是不是运行了这个传递过去的匿名函数,
可以修改_click函数直接alert就好,不是出发set-menu
的click事件就好了。
小建议:组件中的异步操作,最好还是放到生命周期函数里面执行
添加回答
举报
0/150
提交
取消