我为一个网站设计了一个模型,该网站的侧栏有一个显示在mouseEnter上的菜单,并在mouseLeave上消失。这是用jQuery模拟的,不过现在我正在尝试使用Ember重新创建这个功能。到目前为止,我已正确使用mouseEnter,但我无法弄清楚如何绑定mouseLeave。
从我到目前为止所看到的,实现一个View似乎是答案,因为视图已被弃用,我不知道如何解决这个问题。
这是我到目前为止所拥有的:
/app/controllers/sidebar.js
import Ember from 'ember';
export default Ember.Controller.extend({
title: 'Ticket Log',
menu_showing: false,
actions: {
toggleMenu: function () {
this.set('menu_showing', !this.get('menu_showing'));
console.log(this.get('menu_showing'));
}
}
});
/app/templates/sidebar.hbs
<div {{action "toggleMenu" on="mouseEnter"}} id="sidebar" class="panel panel-default">
{{#if menu_showing}}
<div id="sidebar-menu">
<div id="sidebar-menu-buttons">
<button id="sidebar-menu-toggle" type="button" class="btn btn-default glyphicon glyphicon-menu-hamburger"></button>
<button id="sidebar-menu-lock" type="button" class="btn btn-default glyphicon glyphicon-lock"></button>
</div>
<div id="sidebar-menu-pills" class="panel panel-default">
<div class="panel-body">
<ul class="nav nav-pills nav-stacked">
<li class="active"><a href="#">Ticket Log</a></li>
<li><a href="#">Customer Info</a></li>
<li><a href="#">Asset Info</a></li>
</ul>
</div>
</div>
</div>
{{/if}}
{{title}}
{{outlet}}
</div>
答案 0 :(得分:2)
你几乎是对的。不推荐使用Views
,但Components
不推荐使用View
。
Ember.Component.extend({
isMenuShowing: false,
mouseLeave() {
this.toggleProperty('isMenuShowing');
},
mouseEnter() {
this.toggleProperty('isMenuShowing');
},
});