2017-07-26 3 views
1

Ich habe ein Problem mit einer modalen Komponente für die berechnete verschachtelte Eigenschaft.Berechnete verschachtelte Eigenschaft Vuejs

Ich habe eine übergeordnete Komponente, die "Modal-Komponente" ruft Daten durch Requisiten übergeben.
Das Objekt, das ich zu meinem compoments passiere das ist wie:

modalProposal:{ 
    name:test, 
    old: { name: oldTest } 
} 

Also gebe ich mein Objekt zu meinen Komponenten:

<modal :modal-proposal="modalProposal"></modal> 

So sollte meine Komponente modal haben:

export default { 
     props:["modalProposal"], 
     data() { 
      return { 
      } 

     }, 
     computed:{ 
      proposal(){ 
       return this.modalProposal; 
      } 
     } 
    } 

modalProposal wird durch die Funktion vom übergeordneten Element in v-for eingestellt:

<button class="btn btn-primary" id="show-modal" v-on:click="openModal(proposal)">see proposal</button> 

Funktion openModal:

openModal(proposal){ 
       this.modalProposal = proposal; 
       $('#proposalModal').modal('show'); 
      } 

Nun mein Problem ist, dass in Vorlage, Wenn i proposal.name schreiben Es funktioniert, aber wenn ich proposal.old.name schreiben Es gibt Fehler

"TypeError: Cannot read property 'name' of undefined"

Wie kann ich auf eine verschachtelte Eigenschaft Zugriff auf proposal weitergegeben?

+0

Wird 'modalProposal' asynchron gesetzt? – Bert

+0

Vielen Dank Ich habe meine Post mit Set modalProposal bearbeitet – LorenzoBerti

Antwort

2

Wenn jederzeit, modalProposal.old ist undefined dann der Code proposal.old.name einen Fehler werfen. In der Regel wird dies gelöst, indem ein Schutz verwendet wird oder einfach nicht versucht wird, auf proposal.old.name zuzugreifen, bis proposal.old einen Wert hat.

Hier ist ein Beispiel für einen Schutz.

proposal.old && proposal.old.name 
+0

Danke! :) Ja, es funktioniert, aber ich möchte ModalProposal nicht einstellen? Ich habe meine Frage mit dem Set bearbeitet! – LorenzoBerti

+0

@LorenzoBerti Die Art, wie Sie es einstellen, ist in Ordnung. Ich bin mir nicht sicher, ob Sie das berechnete "Angebot" brauchen. Sie könnten, was Sie bisher gezeigt haben, einfach "modalProposal" in der Vorlage verwenden. Aber in beiden Fällen würden Sie die Wache brauchen. – Bert

+0

ok! Danke! Ich brauche Berechnung, denn ohne es, Vorschlag Objekt in Vorlage ist nicht mit Änderung der Requisiten aktualisieren. – LorenzoBerti

Verwandte Themen