2015-07-16 14 views
6

Chcę przerwać przejście na określonej trasie i pokazać modalne. W ten sposób mój kod wygląda trasa:Emberjs przerwać przejście i pokazać modalny

export default Ember.Route.extend({ 
    model: {/* some code here */}, 
    actions: { 
    willTransition: function(transition) { 
     if (!this.controller.get('model.name')) { 
     console.log('aborting transition'); 
     transition.abort(); 
     this.send('showModal', { 
      template: 'campaign/campaign-name-modal', 
      controller: this.controller, 
      model: this.controller.get('model') 
     }); 
     } 
     else { 
     // Bubble the `willTransition` action so that 
     // parent routes can decide whether or not to abort. 
     return true; 
     } 
    } 
    } 
}); 

a następnie w moim application.hbs, mam:

{{outlet 'modal'}} 

Co ja obserwując to, że przejście przerywa ale mój modal nie pojawi się. Po przełączeniu zamówienia na coś takiego:

this.send('showModal', { 
     template: 'campaign/campaign-name-modal', 
     controller: this.controller, 
     model: this.controller.get('model') 
    }); 
    console.log('aborting transition'); 
    transition.abort(); 

przejście w ogóle się nie kończy.

Nie jestem do końca pewien, dlaczego tak się dzieje. Jakieś wskazówki?

+0

W drugim kodzie, jesteś coraz dziennik konsoli „Przerwanie przejścia”? – AcidBurn

Odpowiedz

1

Może Spróbuj zmodyfikować warunkowy używać firstObject:

if (!this.controller.get('model.firstObject.name')) { 
+0

Warunkowa nie jest problemem. Wykonanie przechodzi do bloku 'if', a następnie źle reaguje. – Rajat

+0

Zakładam, że otrzymujesz komunikat konsoli "przerywanie przejścia" bez przerywania przejścia. Jakiej wersji Ember używasz? –

+0

Jestem na "1.10". – Rajat