datePick字符串是按钮内部的一个计算属性,您可以单击datePick值来触发事件,但单击按钮内部datePick值之外的位置不会触发事件。我试着把它包在一个跨度内,并给出宽度:100%,但仍然无法单击
<span> {{capitalize datePick}} </span>
我希望它占据整个空间内的一个按钮,使它可以点击无处不在。
hjqgdpho1#
在Ember Octane(3.13预览版,3.14+)中,你会想做这样的事情(基于@tehprofessor的回答)在模板中:
<span {{on 'click' this.showDatePicker}}> {{capitalize this.datePick}} </span>
但是,要使用语义HTML(并改进可访问性),您确实需要用 * button * 来表示可单击内容。
<button {{on 'click' this.showDatePicker}}> {{capitalize this.datePick}} </button>
然后在组件的js:
import Component from '@glimmer/component'; import { tracked } from '@glimmer/tracking'; import { action } from '@ember/object'; export default class MyComponent extends Component { @tracked datePick = ''; @action showDatePicker(e) { e.preventDefault(); console.log('show the date picker'); } }
ax6ht2ek2#
您是否尝试过添加以下内容:
<span {{action "showDatePicker"}}> {{capitalize datePick}} </span>
并在组件中使用:
import Component from '@ember/component'; export default Component.extend({ actions: { showDatePicker() { // Do some stuff to present the date picker. console.log('Showing date picker, eh?'); } } });
action帮助器默认情况下假定该事件是 click 事件,如文档所示:https://guides.emberjs.com/release/templates/actions/#toc_specifying-the-type-of-event
action
2条答案
按热度按时间hjqgdpho1#
在Ember Octane(3.13预览版,3.14+)中,你会想做这样的事情(基于@tehprofessor的回答)
在模板中:
但是,要使用语义HTML(并改进可访问性),您确实需要用 * button * 来表示可单击内容。
然后在组件的js:
ax6ht2ek2#
您是否尝试过添加以下内容:
并在组件中使用:
action
帮助器默认情况下假定该事件是 click 事件,如文档所示:https://guides.emberjs.com/release/templates/actions/#toc_specifying-the-type-of-event