javascript - Ember 使用计算属性作为 Action 参数

标签 javascript ember.js

我正在构建一个可在 iOS 和桌面设备上使用的应用。我需要将 on="eventType"参数添加到某些操作中,并在桌面上使用 mouseUp,在移动设备上使用 touchEnd。我似乎无法像 on="eventOne eventTwo"一样添加两者,所以我尝试将其作为计算属性来执行,但它似乎不起作用:

<a {{action 'selectTab' 'location' on=clickEvent}} class="{{if locationSelected 'active'}}"><span class="mi-person"></span></a>
<a {{action 'selectTab' 'portfolios' on=clickEvent}} class="{{if portfolioSelected 'active'}}"><span class="mi-movie"></span></a>

export default Ember.Component.extend({
    session: Ember.inject.service(),
    clickEvent: Ember.computed('session.isCordova', function() {
        return this.get('session.isCordova') ? 'touchEnd' : 'mouseUp';
    }),
    actions: {
        selectTab:function(tab){
            console.log("TAB SELCTED");
            alert("TAB SELCTED");
            this.set('selectedTab', tab);
        }
    }
}

我的另一个选择是用 if 语句复制它,但我宁愿有一个优雅的解决方案。

最佳答案

您可以将两种事件类型都添加到您的元素中,它看起来像这样:

 <a {{action 'selectTab' 'location' on='touchEnd'}} {{action 'selectTab' 'location' on='mouseUp'}} class="{{if locationSelected 'active'}}">
      <span class="mi-person"></span>
    </a>
 <a {{action 'selectTab' 'portfolios' on='touchEnd'}} {{action 'selectTab' 'portfolios' on='mouseUp'}} class="{{if portfolioSelected 'active'}}">
   <span class="mi-movie"></span></a>


来源:Multiple actions in a single element

关于javascript - Ember 使用计算属性作为 Action 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35577119/

相关文章:

javascript - 鼠标按下事件敏感度

javascript - 零停机 SSL 证书更新

javascript - 如何对 Ember.js 中的 hasMany 项目进行排序

ember.js - Emberjs 计算属性可以依赖于其他模型属性吗?

javascript - Ember Js 1.0,计算属性和模板在数据更改时不刷新

javascript - 样式化组件背景图像 React

javascript - 在 JavaScript/ASP.net MVC 中从单独的 iFrame 刷新 Div

javascript - 将脚本绑定(bind)到单选按钮: Weird Behaviour : Not Binding by Name

javascript - 无法在验收测试中导入 andThen - ember.js

ember.js - 在 Ember 中的引导模式内渲染表单