EmberJS linkTo verschachtelte Ressource rendert die übergeordnete Ansicht neu

Ich versuche, eine einfache Schnittstelle mit einer Liste von Links auf der linken Seite zu erstellen, die von einem AJAX-Aufruf abgerufen werden, der nach dem Klicken in einem {{outlet}} auf der rechten Seite mit einigen Daten geöffnet wird , auch von einem anderen AJAX-Aufruf von diesem Link abgerufen. Das sind meine Routen:

App.Router.map(function() {
    this.resource('about');
    this.resource('subreddit', { path: 'subreddit/:subreddit_name' }, function() {
    this.resource('comments', { path: 'comments/:id' })
    });
});

Also habe ich eine dynamische Liste von Links, basierend auf: subreddit_name mit der folgenden Struktur:

subreddit/:subreddit_name/comments/:id

Um die Links zu erstellen, habe ich folgenden Codeblock:

<script type="text/x-handlebars" id="subreddit">  
    <div>    
        {{#each item in model}}
            {{#linkTo 'comments' item.subreddit item.id classNames="list-group-item"}}
                
                {{item.author}}                    
            {{/linkTo}}
        {{/each}}
    </div>

    <div>{{outlet}}</div>
</script>

The link is properly corrected, but, after I've inserted the :subreddit_name dynamic route to the Router, when I click the link it re-renders the whole template, instead of re-rendering only the template for the comments:

<script type="text/x-handlebars" id="comments">
{{#each item in model}}
  <div class="panel panel-info mypanel">
    <div class="panel-heading">{{item.author}}</div>
    <div class="panel-body">
       
{{{item.body}}}

</div> </div> {{/each}} </script>

I'm still pretty green on EmberJS, that's why I would like to ask for some suggestion/commment on out to correct this.

Thanks in advance!

0
Es funktioniert .. fast! Die Sache ist, wenn ich auf den Link klicke, ruft es die richtigen Kommentare ab, aber die URL lautet: "index.html #/subreddit/undefined/comments/1t0gwe", wobei 'undefined' der Name des Subreddits sein sollte
hinzugefügt der Autor josetapadas, Quelle
Vielen Dank, Jungs! Ich werde mich über den Serialisierungshaken informieren! Bitte geben Sie einen Kommentar als Antwort, da es wirklich relevant war! Vielen Dank!
hinzugefügt der Autor josetapadas, Quelle
Tut mir leid, hat nicht funktioniert: S Oder wahrscheinlich, ich implementiere es nicht richtig. Das Problem ist immer noch auf dem LinkTo-Tag, bleibt Rendering undefiniert
hinzugefügt der Autor josetapadas, Quelle
edpaez wirst du deine Kommentare in die Antwort schreiben, er muss den Serialisierungs-Hook für die Route implementieren.
hinzugefügt der Autor Kingpin2k, Quelle
Versuchen Sie, nur das Modell als Parameter im Helper link-to anstelle des übergeordneten Modells und der ID zu übergeben. So: {{# linkTo 'Kommentare' Element}} in der Vorlage subreddit
hinzugefügt der Autor edpaez, Quelle
Problem ist, dass niemand dem SubredditRoute das Modell sagt, das es verwendet wird. Sein undefinierter ATM, deshalb versucht er, wenn er es serialisiert (um die URL zu ändern) undefined anzeigt. Was ich denke, dass Sie tun sollten, ist eine Route, die behandelt und zeigt alle Subreddits, dann eine, die ein Subreddit behandelt (die Links zu den Kommentaren anzeigt) und dann die eine für den Kommentar. BEARBEITEN Ich habe meine Zweifel ... versuchen Sie, Ihren ersten link-to Ansatz zu verwenden, aber sehen Sie sich diese Methode an:
hinzugefügt der Autor edpaez, Quelle

1 Antworten

Hier ist das Arbeitsbeispiel von jsbin:

http://jsbin.com/OlOJEwAX/4/edit?html,js,output

Ich habe es geschafft, die Links funktionieren zu lassen, aber das undefinierte ist auch dort gerendert: S

0
hinzugefügt
JavaScript - Deutsche Gemeinschaft
JavaScript - Deutsche Gemeinschaft
3 der Teilnehmer

In dieser Gruppe sprechen wir über JavaScript.