我有一个Handlebars帮助器视图,它使用Em.Button(我知道它已被弃用)制作一个Deactivate Button,当按钮出现时,它会自动聚焦。点击该按钮会触发“删除”按钮。动作和焦点使用动作来取消删除'
问题是,车把助手没有关闭{{/}}把手,阻止我在按钮内放置文字,按钮最终只是一个空壳。 如何为此按钮指定文字值?或如果没有Em.Button,是否有更简单的方法制作此按钮?
绿色检查将转到使此按钮有效的答案。
车把助手看起来像这样
{{delete-recordCategory class="" value=recordCategory focus-out="cancelDeactivate" insert-newline="cancelDeactivate"}}
在视图中,我添加了焦点,然后点击“停用”按钮。采取行动
VpcYeoman.DeleteRecordCategoryView = Em.Button.extend(Ember.ViewTargetActionSupport, {
click: function() {
this.triggerAction({
action: 'deactivateCategoryNow'
}); // Sends the `save` action, along with the current context
// to the current controller
},
didInsertElement: function() {
this.$().focus();
}
});
Ember.Handlebars.helper('delete-recordCategory', VpcYeoman.DeleteRecordCategoryView);
ember站点建议将Ember.ViewTargetActionSupport作为向此视图添加操作的方法。
Ember v.1.0
答案 0 :(得分:1)
Ember.Button
不仅被弃用,而且已从新版本中完全删除。绝对不是你想要留下的东西。尝试自己写。这是一个可能做你想做的组件的快速示例:
App.FocusButtonComponent = Ember.Component.extend({
didInsertElement: function() {
Em.run.later(function() {
this.$('button').focus();
}.bind(this), 1);
},
actions: {
click: function() {
this.sendAction('click');
}
}
});
focus_button.hbs
<button {{action 'click' on='click' bubbles=false}}>
{{yield}}
</button>
然后,您可以像这样使用它:
{{focus-button click='deactivateCategoryNow'}}
Text Goes Here. Could be anything. <strong>Anything.</strong>
{{/focus-button}}