2015-02-25 17 views
6

İlgili yayınları saatler boyunca inceledim, ancak sahip olduğum sorunu düzeltmek için doğru cevabı bulamadım. Ben kontrolör şeyler yanlış kullanım olduğunu düşünüyorumEmber denetleyicisi: hiçbir şey eylemi ele almadı

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

ya da yanlış bir rotaya kadar köpüren:

hatasını almaya devam?

App.EventDetailsController = Ember.ObjectController.extend({ 
    isEditing: false, 

actions: { 
    edit: function() { 
     this.set('isEditing', true); 
    }, 

    doneEditing: function() { 
     this.set('isEditing', false); 
    } 
    } 
}); 


App = Ember.Application.create(); 

    App.Router.map(function() { 
    // put your routes here 
    this.route('events', {path: '/events'}); 
    this.route('createevent', {path: '/createevent'}); 
    this.route('eventdetails', {path: ':eventdetails_id'}); 
}); 

App.EventsRoute = Ember.Route.extend({ 
model: function() { 
    return events; 
} 
}); 

App.EventDetailsRoute = Ember.Route.extend({ 
model: function(params) { 
    return events.findBy('id', params.eventdetails_id); 
} 
}); 

Bunun neden işe yaramayacağını bilen var mı?

+0

Lütfen şablonu gösterin. –

cevap

2

Muhtemelen bu gibi yolları tanımlamak istiyorum:

App.Router.map(function() { 
    this.resource('events', function() {       // /events   <-- your event listing 
     this.resource('event', {path: ':event_id'}, function() { // /events/1  <-- your event details 
      this.route('edit');          // /events/1/edit <-- edit an event 
     }); 
     this.route('create');          // /events/create <-- create your event 
    }); 
}); 

Fakat her şeyin ötesinde

, Routes aracılığıyla yukarı o eylemler kabarcık unutmayıp yerine EventDetailsRoute için eylemler işleyici hareketli deneyin.

burada bahsetmek istemez kılavuzunda kısmı oku: şablon ve denetleyici adı farklı olduğunda http://emberjs.com/guides/templates/actions/#toc_action-bubbling

App.EventDetailsRoute = Ember.Route.extend({ 
    actions: { 
     edit: function() { 
      this.set('isEditing', true); 
     }, 

     doneEditing: function() { 
      this.set('isEditing', false); 
     }, 

     //or maybe better: 
     toggleEditing: function() { 
      this.toggleProperty('isEditing'); 
     } 
    }, 

    model: function(params) { 
     return events.findBy('id', params.eventdetails_id); 
    } 
}); 
+1

Bu benim sorunumu çözdü! Çok takdir ediyor! – sunoceansand

+0

Eylemleri ana rotaya taşımak işe yaradı! –

0

Doğru adlandırma kurallarını kullanmayla ilgili bir şüphem var. Rotanızın adı EventDetailsRoute ise, rota yönlendiricide event-details olarak belirtilmelidir.

+0

Teşekkür ederim, adlandırma kurallarını incelemeye başladım. – sunoceansand

0

bu sorun ortaya çıkar. Lütfen şablonunuzu ve kontrolörünüzü kontrol edin.