Skip to content

Commit eb6c8df

Browse files
VdustRmarcosmoura
authored andcommitted
fix(MdMenuItem): fix router (vuematerial#1474)
fix vuematerial#1471
1 parent 1286120 commit eb6c8df

File tree

2 files changed

+33
-6
lines changed

2 files changed

+33
-6
lines changed

src/components/MdList/MdListItem/MdListItem.vue

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,10 @@
4444
return MdListItemExpand
4545
}
4646
47+
if (props.disabled) {
48+
return MdListItemButton
49+
}
50+
4751
if (isRouterLink(parent, props)) {
4852
MdListItemRouter.props = MdRouterLinkProps(parent, {
4953
target: String

src/components/MdMenu/MdMenuItem.vue

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,21 +26,31 @@
2626
}
2727
}
2828
},
29+
methods: {
30+
closeMenu () {
31+
this.MdMenu.active = false
32+
33+
if (this.MdMenu.eventObserver) {
34+
this.MdMenu.eventObserver.destroy()
35+
}
36+
},
37+
38+
triggerCloseMenu () {
39+
if (!this.disabled) {
40+
this.closeMenu()
41+
}
42+
}
43+
},
2944
created () {
3045
if (this.MdMenu.closeOnSelect) {
3146
let listenerNames = Object.keys(this.$listeners)
32-
let hasInteraction = false
3347
3448
listenerNames.forEach(listener => {
3549
if (MdInteractionEvents.includes(listener)) {
3650
this.listeners[listener] = $event => {
3751
if (!this.disabled) {
3852
this.$listeners[listener]($event)
39-
this.MdMenu.active = false
40-
41-
if (this.MdMenu.eventObserver) {
42-
this.MdMenu.eventObserver.destroy()
43-
}
53+
this.closeMenu()
4454
}
4555
}
4656
} else {
@@ -50,6 +60,19 @@
5060
} else {
5161
this.listeners = this.$listeners
5262
}
63+
},
64+
mounted () {
65+
if (this.$el.children && this.$el.children[0]) {
66+
let listItem = this.$el.children[0]
67+
68+
if (listItem.tagName.toUpperCase() === 'A') {
69+
this.$el.addEventListener('click', this.triggerCloseMenu)
70+
}
71+
}
72+
},
73+
74+
beforeDestroy () {
75+
this.$el.removeEventListener('click', this.triggerCloseMenu)
5376
}
5477
})
5578
</script>

0 commit comments

Comments
 (0)