我对Ember有了基本的感觉,并且此刻遇到了一些奇怪的问题。该应用程序非常基本(而且很丑陋)。在特定路由(/ stack)上,我列出了一堆属于这个堆栈的卡片。 StackController是一个数组控制器,因为它检索一堆属于它的卡,基本上是
StackController = Ember.ArrayController.extend();
和
StackRoute = Ember.Route.extend({
model: function(){
return App.Card.find();
}
});
然后在我的模板中,我只需使用#each帮助程序循环显示卡片的属性('front'),如下所示:
<ul>
{{#each}}
<li>{{front}}</li> <button {{action 'backside' this}}>View</button>
{{/each}}
</ul>
直到这里,一切都按照应有的方式运作。但是,当我点击“查看”按钮触发“后侧”事件时,它会产生一个:
“没有处理事件'背面'”错误。有点沮丧,因为它似乎非常基本,它应该这样做,哦是的,我明确指定我的控制器中的'背面'事件,像这样:
StackController = Ember.ArrayController.extend({
actions:{
backside:function(){
alert("backside event handled");
}
}
});
有关更详细的介绍,请参阅jsBin:
http://jsbin.com/AHiTicU/5/edit
我做错了什么?
JSBIN中的代码是准确的,但是这里可能存在一些拼写错误(不太可能,但是抬头)。
答案 0 :(得分:0)
您正在使用该版本中的ember-1.0.0-rc.6
来使用您需要的操作,将操作处理程序置于路径中,并在具有名为events
的键的对象中,如下所示:< / p>
App.StackRoute = Ember.Route.extend({
model: function(){
return App.Card.find(); // must substitute this with this.store.find('card');
},
events:{
backside:function(){
alert('working');
}
}
});
更新了jsbin http://jsbin.com/AHiTicU/6/edit
我建议您使用最新版本,目前1.2.0
,您可以在emberjs网站http://emberjs.com/的主页上找到它。
因此,您当前的代码将有效http://jsbin.com/AHiTicU/9/edit