我不知道我的代码有什么问题。模板/组件/item.hbs:
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-default" {{action 'buttonClicked' item}} disabled={{unless item.isValid true}}>{{buttonLabel}}</button>
</div>
</div>
组件/item.js:
import Component from '@ember/component';
export default Component.extend({
buttonLabel: 'Save',
actions: {
buttonClicked(param) {
this.sendAction('action', param);
}
}
});
Ember/library-app/app/components/item.js
8:13 错误 使用闭包操作,除非您需要冒泡 ember/closure-actions
由于 ember > 2.0 关闭操作是处理操作的首选方式(Data Down Actions Up DDAU)。
我建议阅读此内容http://miguelcamba.com/blog/2016/01/24/ember-closure-actions-in-deep/ http://miguelcamba.com/blog/2016/01/24/ember-closure-actions-in-depth/
从较新的 ember 版本(我相信是 2.18)开始,有一条 ESlint 规则指出人们应该转向关闭操作:https://github.com/ember-cli/eslint-plugin-ember/blob/master/docs/rules/closure-actions.md https://github.com/ember-cli/eslint-plugin-ember/blob/master/docs/rules/closure-actions.md
- 您可以将代码重写为:
我的按钮.hbs
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-default" onclick={{action "buttonClicked" item}} disabled={{unless item.isValid true}}>{{buttonLabel}}</button>
</div>
</div>
我的按钮.js
import Component from '@ember/component';
export default Component.extend({
buttonLabel: 'Save',
actions: {
buttonClicked(param) {
this.get('onButtonClicked')(param);
}
}
});
- 或者您可以通过以下方式挥动您的行动:
我的按钮.hbs
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-default" onclick={{action onButtonClicked item}} disabled={{unless item.isValid true}}>{{buttonLabel}}</button>
</div>
</div>
我的按钮.js
import Component from '@ember/component';
export default Component.extend({
buttonLabel: 'Save'
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)