繁体   English   中英

在ember的控制器中绑定多个动作

[英]Binding multiple actions in controller in ember

我为网站设计了一个样机,该网站的侧边栏带有一个菜单,该菜单出现在mouseEnter上,而在mouseLeave上消失。 这是用jQuery模拟的,尽管现在我正尝试使用Ember重新创建此功能。 到目前为止,我已经可以正确地使用mouseEnter了,但是我不知道如何绑定mouseLeave。

从到目前为止的内容来看,实现View似乎是答案,因为不赞成使用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>

你说的差不多。 Views已弃用,但Components未使用,并且它们已从View扩展。

Ember.Component.extend({
  isMenuShowing: false,

  mouseLeave() {
    this.toggleProperty('isMenuShowing');
  },

  mouseEnter() {
    this.toggleProperty('isMenuShowing');
  },
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM