Cascader: use ref / refInFor for menus

pull/5915/merge
wacky6.AriesMBP 2017-07-17 21:42:32 +10:00 committed by 杨奕
parent e60ff9e9b6
commit 90528c2a4f
1 changed files with 7 additions and 12 deletions

View File

@ -100,14 +100,7 @@
scrollIntoView(menu, menu.getElementsByClassName('is-active')[0]); scrollIntoView(menu, menu.getElementsByClassName('is-active')[0]);
}, },
handleMenuEnter() { handleMenuEnter() {
this.$nextTick(() => this.getMenus().forEach(menu => this.scrollMenu(menu))); this.$nextTick(() => this.$refs.menus.forEach(menu => this.scrollMenu(menu)));
},
getMenus() {
if (this.$refs.wrapper) {
return Array.prototype.slice.call(this.$refs.wrapper.getElementsByClassName('el-cascader-menu'));
} else {
return [];
}
} }
}, },
@ -139,14 +132,14 @@
this.activeItem(item, menuIndex); this.activeItem(item, menuIndex);
this.$nextTick(() => { this.$nextTick(() => {
// adjust self and next level // adjust self and next level
this.scrollMenu(this.getMenus()[menuIndex]); this.scrollMenu(this.$refs.menus[menuIndex]);
this.scrollMenu(this.getMenus()[menuIndex + 1]); this.scrollMenu(this.$refs.menus[menuIndex + 1]);
}); });
}; };
} else { } else {
events.on.click = () => { events.on.click = () => {
this.select(item, menuIndex); this.select(item, menuIndex);
this.$nextTick(() => this.scrollMenu(this.getMenus()[menuIndex])); this.$nextTick(() => this.scrollMenu(this.$refs.menus[menuIndex]));
}; };
} }
} }
@ -176,7 +169,9 @@
'el-cascader-menu': true, 'el-cascader-menu': true,
'el-cascader-menu--flexible': isFlat 'el-cascader-menu--flexible': isFlat
}} }}
style={menuStyle}> style={menuStyle}
refInFor
ref="menus">
{items} {items}
</ul> </ul>
); );