我在Ember Cli版本:0.2.3
我正在与Ember一起探索,并尝试一个非常简单的应用程序。
我的模板/ about.hbs
中有这个<h1>About</h1>
<p>I'll write something interesting here</p>
<button type="btn btn=primary"{{action 'clickMe'}}>Click me!</button>
和我的控制器/ about_controller.js
Blogger.AboutController = Ember.Controller.extend({
actions: {
clickMe: function() {
alert('Something something');
}
}
});
当我点击按钮时出现此错误,我检查了语法并且似乎无法捕捉到什么错误。我需要一些新鲜的眼睛。
Uncaught Error: Nothing handled the action 'clickMe'. If you did handle the action, this error can be caused by returning true from an action handler in a controller, causing the action to bubble.
现在,我理解了消息的内容,但我还不知道如何修复它。
答案 0 :(得分:2)
Ember可能找不到您的控制器。您可以使用ember inspector进行调试。无论如何,您应该在ember cli项目中使用ES6约定。您可以更多地了解主题here。
无论如何,尝试通过键入
使用命令行创建about
控制器
ember generate controller about
然后手动添加您的操作。
答案 1 :(得分:2)
您是否正在为您的计划使用ember cli或Ember入门套件。
如果您使用Ember cli,那么您应该创建像 - 应用程序/模板/ about.hbs 应用程序/控制器/ about.js 你应该在app / router.js中创建一个条目[我认为你必须这样做。] 在router.js-
中输入Router.map(function() {
this.route('about');
});
现在你的模板/ about.hbs应该是 -
<h1>About</h1>
<p>I'll write something interesting here</p>
<button {{action 'clickMe'}}>Click me!</button>
和controllers / about.js应该是 -
import Ember from 'ember';
export default Ember.ObjectController.extend({
actions:{
clickMe: function() {
alert('Something something');
}
}
});
完成上述所有更改后,在CMD上执行以下命令 - ember服务器(这应该启动服务器)
如果以上述模式执行,您的代码应该可以正常工作。 命名约定在Ember中非常重要。