2016-05-25 5 views
0

mir eine jsbin erstellt. https://ember-twiddle.com/52edd8462fa6e3cf1a147a2a047c9207?openFiles=models.post.js%2Ccp Aktualisierung nicht bei der Verwendung von hasMany (..) Wert() anstelle von get (..)

Ausgabe: cp characters auf post nicht aktualisiert, wenn Eigenschaft content Änderungen auf comment.

'Fix': Die Änderung tritt auf, wenn this.get('comments') anstelle von this.hasMany('comments').value() verwendet wird.

get benachrichtigt Beobachter, dass es für Veränderungen auf dem Grundstück aussehen soll, weil es verwendet wird, während hasMany diese Funktion zu haben scheint nicht ..

Ist dies absichtlich oder ein Bug?

Antwort

0

Sie nicht iterieren über model.comments. das ist, warum Sie vor einem Problem stehen. versuchen, den folgenden Code in der Vorlage zu verwenden. seine Arbeits

{{#each model.comments as |comment|}} 
    <div> 
    content: {{input value=comment.content}} 
    </div> 

    <div> 
    characters: {{comment.characters}} 
    </div> 

    <br /><br /> 
{{/each}} 
+0

Bitte vergessen Sie nicht, meine Antwort zu akzeptieren. es ist besser als einfach danke :) –

+0

Ihr Beispiel funktioniert, weil es model.get ('Kommentare') intern verwendet, die funktioniert, wie ich erklärte. Mein Beispiel nennt explizit 'comments' über' .hasMany', wie auf Controller-Ebene definiert. – dylanmensaert

0

hasMany().value() Aufruf wird der aktuelle Wert des Modells und null zurück, wenn es noch kein Wert ist (noch nicht aus dem Backend abgerufen). Es kann verwendet werden, um zu überprüfen, ob das Modell bereits geladen ist oder nicht, es wird keine Last auf den Server auslösen. Dies ist ein beabsichtigtes Verhalten, um nur den Inhalt zu erhalten, ohne eine Last auszulösen.

Verwandte Themen