灰烬错误:没有处理此事件

时间:2013-11-26 21:24:21

标签: javascript-events ember.js handlebars.js

我对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中的代码是准确的,但是这里可能存在一些拼写错误(不太可能,但是抬头)。

1 个答案:

答案 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