2013-02-20 11 views
6

Teraz budujemy nasze linki tak:Jak zbudować link bez wstępnego ładowania modelu?

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

który generuje link, który wygląda jak /comments/45.

Niestety, działa to tylko wtedy, gdy wstępnie wczytamy komentarz - mimo że mamy już identyfikator komentarza. Czy to możliwe bez wstępnego załadowania komentarza?

Coś, co może wyglądać tak:

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

Odpowiedz

2

Jaki jest rzeczywisty pytanie tutaj? Nie jest to dla mnie jasne.

Więc aktualna obsługi działania wygląda następująco:

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

Teraz pożądany rozwiązaniem mogłoby wyglądać tak:

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

i odpowiadająca Handler:

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 
} 

byłoby ta praca w twoim przypadku? A może zamierzałeś coś innego?


UPDATE: PO chciałby mieć wszystkie dane Postępowanie trasie danej trasy mają obsługiwać akcję „showCommentById” że zrobiłem zaproponowania przed:

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); 
     } 
    } 
}); 

Więc faktycznie jesteś wolny aby zdecydować, w którym miejscu obsługiwać akcje w swojej aplikacji.

+0

To działa, ALE! Chcemy nadal ładować dane (funkcje wyszukiwania połączeń w modelach) na trasie naszego routera. Szczególnie w nowym interfejsie routera ładowanie modeli na trasie jest bardzo przyjemne, więc nie jestem pewien, czy to najlepsza praktyka, aby to zrobić w naszych "funkcjach nawigacyjnych" (takich jak showComment), jak zasugerowałeś. – kraftwer1

+1

Ale łatwo przekazujesz to połączenie na swoją trasę? Czy umiesz postawić skrzypce? Wtedy mógłbym zrozumieć Twoją obecną strukturę aplikacji. – mavilein

+0

Próbowałem umieścić prosty przykład na skrzypcach http://jsfiddle.net/AhgBh/. To nie zadziała, ale pokazuje trochę więcej szczegółów naszej struktury. Witamy na wejściach! – kraftwer1

Powiązane problemy