2013-11-26 3 views
0

Я получаю базовое чувство для Ember и сталкиваюсь с некоторыми странными проблемами на данный момент. Приложение довольно простое (и уродливое). На определенном маршруте (/ стек) я перечисляю кучу карт, принадлежащих этому стеку. StackController является контроллером массива, поскольку он извлекает пачку карточек, которые принадлежат к нему, по существуОшибка Ember: ничего не обработано событие

StackController = Ember.ArrayController.extend(); 

и

StackRoute = Ember.Route.extend({ 
    model: function(){ 
     return App.Card.find(); 
    } 
}); 

Тогда в моих шаблонах, я просто петлю через него с помощью помощника #each для отображения свойство карты («спереди»), например:

<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

Вы используете ember-1.0.0-rc.6, в этой версии, чтобы использовать действие, которое нужно поставить вас обработчик действий внутри маршрута, в объекте с помощью ключа под названием events, как следующее:

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

+0

, что было, спасибо большое! –

Смежные вопросы