2013-02-20 23 views
6

In questo momento, stiamo costruendo i nostri link del genere:Come creare un collegamento senza precaricare il modello?

<a {{action showComment comment href=true}}>Show</a> 

che genera un link che sembra /comments/45.

Sfortunatamente, ciò funziona solo quando pre-carichiamo il commento, anche se abbiamo già l'ID del commento. È possibile senza precaricare il commento?

Qualcosa che potrebbe essere simile:

<a {{action showComment comment_id href=true}}>Show</a> 

risposta

2

Qual è la domanda reale qui? Questo non è abbastanza chiaro per me.

Così il vostro gestore di azione in corso si presenta così:

showComment : function(comment){ 
    //do your stuff with the model 
} 

Ora la soluzione desiderata potrebbe essere la seguente:

<a {{action showCommentById comment_id href=true}}>Show</a> 

e il corrispondente gestore:

showCommentById : function(commentId){ 
    var comment = App.Comment.findById(commentId); // i assume you have this retrieval method or something like it 
    this.showComment(comment); 
}, 
showComment : function(comment){ 
    //do your stuff with the model 
} 

Would questo lavoro nel tuo caso? O intendevi qualcos'altro?


UPDATE: OP vorrebbe avere tutte Gestione dei dati nel percorso il percorso dovrebbe gestire l'azione "showCommentById" che ho fatto propongo prima:

App.ArticlesRoute = Ember.Route.extend({ 
    events : { 
     showCommentById : function(commentId){ 
      var comment = App.Comment.findByIds(commentId); // i assume you have this retrieval 
      this.transitionTo("root.articles.comment", comment); 
     } 
    } 
}); 

Quindi, in realtà siete liberi per decidere dove gestire le azioni nella tua app.

+0

Questo funziona, MA! Vogliamo continuare a caricare i dati (chiamate le funzioni di ricerca sui modelli) nel percorso del nostro router. Soprattutto nella nuova API del router, il caricamento dei modelli all'interno di un percorso è stato risolto molto bene, quindi non sono sicuro che sia la soluzione migliore per farlo nelle nostre "funzioni di navigazione" (come showComment), come suggerito. – kraftwer1

+1

Ma puoi facilmente delegare quella chiamata al tuo percorso? Puoi montare un violino? Allora potrei capire la tua attuale struttura dell'app. – mavilein

+0

Ho provato a mettere un semplice esempio su fiddle http://jsfiddle.net/AhgBh/. Non funzionerà, ma mostra un po 'più precisi la nostra struttura. Benvenuto per gli input! – kraftwer1

Problemi correlati