为什么我的<button>
有效但{{delete-toggle}}
组件为消息变量提供了未定义的内容?
{{delete-toggle action='deleteMessage' message=message}}
<button {{action 'deleteMessage' message}}>Some Action (param: {{message}}</button>
&#13;
import Ember from 'ember';
export default Ember.Component.extend({
tagName: '',
actions: {
deleteMessage(message){
console.log(message);
return this.sendAction('deleteMessage', message);
}
}
});
&#13;
答案 0 :(得分:1)
{{delete-toggle}}
组件在没有参数的情况下触发默认操作,但您的deleteMessage
操作处理程序需要一个。另一方面,该按钮显式传递其{{action 'deleteMessage' message}}
说明符中的参数。
为什么要传递参数,因为组件已经知道所涉及的消息?
{{delete-toggle action='deleteMessage' message=message}}
export default Ember.Component.extend({
// ATTRIBUTES
message: null,
// ACTIONS
actions: {
deleteMessage(){
var message = this.get('message');
console.log(message);
this.sendAction('deleteMessage', message);
}
}
});
然后您可以将按钮更简单地写为
<button {{action 'deleteMessage'}}>Some Action (param: {{message}}</button>
顺便说一句,我不推荐空标签。你有这样做的原因吗?另外,我认为从动作处理程序返回一个值不会有用。