ember.js - EmberJS 组件中使用 {{#event}} 块的事件处理
问题描述
我一直在使用 Ember 中的用户界面,我很难按照文档here中的描述实现一些事件处理
我需要在悬停时突出显示导航栏的一部分。导航栏由ember-bootstrap 组件组成。
{{#bs-navbar type="dark" backgroundColor="primary" as |navbar|}}
{{navbar.toggle}}
<div class="container-fluid" style="padding-left:50px;padding-right:50px; ">
<a class="navbar-brand" href="#"><img style="max-width:250px; margin-top: -12px;margin-bottom: -12px" src="/assets/images/logo_white_3x.png"></a>
{{#navbar.content}}
{{#navbar.nav as |nav|}}
{{#nav.item class="highlight-active"}}
{{#nav.link-to "index"}}LIVE{{/nav.link-to}}
{{/nav.item}}
{{/navbar.nav}}
{{/navbar.content}}
<div class="navbar-nav mr-left">
{{#navbar.content}}
{{#navbar.nav as |nav|}}
{{#nav.dropdown class="{{isHover}}" as |dd|}}
{{#dd.toggle }}Link<span class="caret"></span>{{/dd.toggle}}
{{#dd.menu as |ddm|}}
{{#ddm.item}}{{#ddm.link-to "index"}}Link{{/ddm.link-to}}{{/ddm.item}}
{{#ddm.item}}{{#ddm.link-to "cau.all"}}Link{{/ddm.link-to}}{{/ddm.item}}
{{/dd.menu}}
{{/nav.dropdown}}
{{#nav.item}}
{{#nav.link-to "index"}}Current User: <b>MICKEY MOUSE</b>{{/nav.link-to}}
{{/nav.item}}
{{/navbar.nav}}
{{/navbar.content}}
</div>
</div>
{{/bs-navbar}}
为此,我尝试使用文档中描述的块事件之一:
//template
{{#hover}}
<h1>link</h1>
{{/hover}}
//component
export default Component.extend({
hover() {
alert('hovered')
},
actions: {
//actions here
}
});
这会产生以下错误:hover not found, and the catch-all block handler didn't handle it
我认为这可能是因为偶数的名称必须连字符,所以相应地更改了它。这产生了一个no component or helper by that name
错误。
从指南中复制和粘贴相同的文本会产生相同的错误,这表明我不理解更基本的东西。
任何人都可以解释一下吗?
解决方案
尝试对mouseEnter
事件使用一个动作,例如<div mouseEnter={{action "showCaution"}}>
另一种保留本机事件行为和使用动作的方法是将(闭包)动作分配给内联事件处理程序。
动作只是在组件的动作散列上定义的函数。由于动作被分配给内联处理程序,函数定义可以将事件对象定义为其第一个参数。
actions: {
showCaution(event){
// Only when assigning the action to an inline handler, the event object
// is passed to the action as the first parameter.
}
}
推荐阅读
- vue.js - Vue-Material 切换主题(“Vue”类型上不存在属性“material”)
- c++ - 将新对象分配给其地址时,是否必须销毁对象?
- python - Python Plotly:制作次轴对数刻度
- flutter - 显示上下文操作(alt + enter)未显示 Flutter 项目中的某些类名(尝试导入引用)
- datetime - 在 Hive 中使用整数类型的日期和小时列创建关于小时频率的日期时间数据
- stack-trace - 如何在使用 retrace.jar 去混淆的 android / R8 堆栈跟踪中读取 lambda?
- sql - PostgreSQL 复合外键“列列表不得包含重复项”
- database - 如何在wordpress中运行代码来处理数据库
- python - 如何将逗号分隔的数字字符串转换为数字?
- python - 如何使用于转义字符串中字符的反斜杠不计数