当用户在输入字段中按下转义键时,如何使Ember触发控制器操作?
给出以下应用程序代码:
App = Ember.Application.create(); App.IndexRoute = Ember.Route.extend({ model: function () { return {foo: "bar"}; } }); App.IndexController = Ember.ObjectController.extend({ actions: { done: function () { console.log("done"); },cancel: function () { console.log("cancel"); } } });
以下HTML:
<body> <script type="text/x-handlebars" data-template-name="application"> {{outlet}} </script> <script type="text/x-handlebars" data-template-name="index"> {{input value=foo action="done" cancel="cancel"}} </script> </body>
我希望触发控制器中的取消操作,但我得到的是一个错误:对象[object Object]的属性“取消”不是一个函数.
用上面的代码Here’s a JSBin来说明.我怎样才能做到这一点?
解决方法
它没有很好的记录,但看到代码……
https://github.com/emberjs/ember.js/blob/v1.1.2/packages/ember-handlebars/lib/controls/text_support.js#L106-L117
https://github.com/emberjs/ember.js/blob/v1.1.2/packages/ember-handlebars/lib/controls/text_support.js#L106-L117
你应该像这样定义你的把手
{{input value=foo enter='done' escape-press='cancel'}}