2015-11-10 2 views
0

У меня есть приложение, когда вы выполняете поиск, возвращаете некоторые данные для моего пользователя. Когда я нажимаю для выполнения поиска, я получаю эту ошибку и объект модели внутри действий, не показываю модель с заполненной информацией. Следуйте за ошибкой и кодом.Ничего не обработано действие Emberjs 2

Uncaught Error: Nothing handled the action 'doSearchBooking'. 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. 

Компонент

export default Ember.Component.extend({ 
    actions: { 
     searchBooking(booking) { 
      console.log('Component - 6', booking); 
      this.sendAction('doSearchBooking', booking); 
      this.set('booking', {}); 
     } 
    } 
}); 

Форма компонент

<form class="row" > 
    <div class="col-sm-3"> 
      {{input type='text' value=booking.doc1 class='form-control'}} 
    </div> 
    <div class="col-sm-2"> 
      {{input type='text' value=booking.doc2 class='form-control'}} 
    </div> 
    <div class="col-sm-2"> 
     {{input type='text' value=booking.doc3 class='form-control'}} 
     </div> 
     <div class="col-sm-3"> 
      {{input type='text' value=booking.idDoc class='form-control'}} 
     </div> 
     <div class="col-sm-2 btn-form-pesquisa"> 
      <button class="btn btn-primary" {{action 'searchBooking' booking}}>Search</button> 
     </div> 
</form> 

Вызов компонента

{{search-booking booking=model.booking searchBooking='doSearchBooking'}} 

Мой контроллер

export default Ember.Controller.extend({ 
    actions: { 
     doSearchBooking(booking) { 
      console.log('controller - 6'); 
      this.sendAction('searchBooking', booking); 
     } 
    } 
}); 

И мой маршрут

export default Ember.Route.extend({ 
    model() { 
     return Ember.RSVP.hash({ 
      data: this.store.createRecord('booking'), 
      booking: {} 
     }); 
    }, 
    actions: { 
     searchBooking(booking) { 
      let newSearch = this.store.createRecord('booking', { 
       doc1: booking.doc1, 
       doc2: booking.doc2, 
       doc3: booking.doc3, 
       idDoc : booking.idDoc 
      }); 

      newSearch.save(); 
     } 
    } 
}); 

ответ

1

Проблема заключается в том, что вы передаете действие к компоненту, как searchBooking:

{{search-booking booking=model.booking searchBooking='doSearchBooking'}} 

Но тогда вы пытаетесь вызвать его в компоненте, как:

this.sendAction('doSearchBooking', booking); 

Вместо этого попробуйте вызвать его так:

this.sendAction('searchBooking', booking); 
+0

Я изменяю действие отправки и ошибка продолжается – flpms

+0

Вы уверены, что у вас нет опечатки в коде? По ошибке есть пробел в имени действия - 'doSearch Booking'. –

+0

Я уверен, я вижу много вопросов об Ember github, связанных с этим. – flpms

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