Ember.js New Router: uzyskiwanie dostępu do serializowanych obiektów z macierzystych dynamicznych segmentów tras

Było podobnekwestia już.

Zakładając następujące trasy:

App.Router.map(function (match) {
  match('/').to('index');
  match('/posts').to('posts', function (match) {
    match('/').to('postsIndex');
    match('/:post_id').to('post', function (match) {
      match('/comments').to('comments', function (match) {
        match('/').to('commentsIndex');
        match('/:comment_id').to('showComment');
      });
    });
  });
});

Czy można uzyskać dostęp do obupost_id icomment_id wShowCommentRoute? W przeciwnym razie powinienem zapomnieć o klawiszach kompozytowych w moich modelach?

CzemuCommentsRoute#model(params) iCommentsIndexRoute argument jest zawsze pusty? Jak odzyskaćPostkomentarze kiedy?

Mójskrzypce.

Uruchom toprzykład też (jest dziennik konsoli pokazujący problem.

AKTUALIZUJ po pewnym dochodzeniu:

TylkoPostRoute będzie miałparams.post_id. TylkoShowCommentRoute będzie miałparams.comment_id i nie będzieparams.post_id.

Jest to niedopuszczalne w przypadku aplikacji, w których modele mają klucze kompozytowe. W przypadku przejścia nashowComment krok po kroku możemy uzyskaćComment instancja:

App.ShowCommentRoute = Ember.Route.extend({
  model: function(params) {
    var post_id = this.controllerFor('post').get('content.id');
    return App.Comment.find(post_id, params.comment_id);
  }
});

Ale to nie zadziała, jeśli odwiedzimy bezpośrednio/posts/1/comments/1. W tym przypadkuthis.controllerFor('post') zawszeundefined.

Jeśli masz zagnieżdżone trasy z segmentami dynamicznymi, możesznie może dostęp do tych segmentów w*IndexRoute (PostRoute iPostInderRoute w tym przykładzie)Wkrótce nie można uzyskać modelu trasy nadrzędnej, gdybezpośrednio odwiedzając zagnieżdżona trasa.

questionAnswers(1)

yourAnswerToTheQuestion