2017-08-02 1 views
0

Ich habe eine Stamm- und eine untergeordnete Komponente. Ich versuche, Daten mit den Requisiten von Eltern zu Kind zu übergeben.Beim Übergeben von Daten von Eltern zu Kind, übergibt es aber Ansicht wird nicht aktualisiert

Durch Vue Debugger-Erweiterung kann ich sehen, dass meine Komponente die accountTypes aber ID nicht angezeigt wird.

Die Objektstruktur ist wie folgt:

var obj = { 
     1 : [ "a", "z", "k", "m" ] 
     2 : [ "a", "b", "c", "d" ] 
} 

Und in meinem Haupt-app,

var app = new Vue({ 

el: '#root', 

data: { 
    accountTypes : {}, 
}, 



methods : { 
    // selecting & pushing 
    accountTypeSelected(clientIndex, formName, action) { 
     if (action == 'add') { 
      this.pushValue(clientIndex, formName) 
     } else { 
      this.removeFromArray(clientIndex, formName) 
     } 
    }, 

// And these are what I use for push and delete: 
    pushValue(key, value) { 
     var obj = this.accountTypes 

     if (obj.hasOwnProperty(key)) { 
      var idx = $.inArray(value, obj[key]); 
      if (idx == -1) { 
       obj[key].push(value); 
      } 
     } else { 
      obj[key] = [value]; 
     } 
    }, 

    removeFromArray(key, val) { 
     var idx = $.inArray(val, this.accountTypes[key]); 
     if (idx != -1) { 
      this.accountTypes[key].splice(idx, 1); 
     } 
    } 
} 
+0

1: {"a", "z", "k", "m"} ??? kein Array? 1: ["a", "z", "k", "m"], es gibt kein Schlüssel/Wert-Paar, also ein Array –

+0

, das Sie in 'v-bind' ausgegeben haben. Es sollte '

+0

Ah Entschuldigung. Sie sind Array. Außerdem tut mir leid über den Typ von 'v-bind:'. Fixiere sie jetzt, aber das ist nicht der Fall. Danke für den Hinweis – senty

Antwort

0

Sie initialisieren accounts von accountTypes, aber Initialisierung ist eine einmalige Sache. Aktualisierungen an accountTypes werden nicht erneut initialisiert accounts.

Wenn Sie wollen, dass das Kind mit dem Elternteil auf dem neuesten Stand ist, dann sollten Sie accounts loswerden und einfach accountTypes verwenden.

+0

Ich habe das auch versucht. Ich habe versucht, es einfach 'reps: ['accountTypes'],' in meiner Komponente und '' – senty

+0

'accountTypes' ist kein Array. Gibt es eine Möglichkeit, einen Schnipsel oder eine Geige zu machen, die das Problem zeigt und was Sie erwarten, dass es das tut, was es nicht tut? –

+0

https://jsfiddle.net/50wL7mdz/51201/ - Hier habe ich eine Geige vorbereitet. Es funktioniert, wenn Sie eine Ziffer in der for-Schleife verwenden, aber nicht mein Objekt :(Das erwartete Verhalten ist, dass es jeden Array-Wert sowie ihre Schlüssel zurückgibt. Also eins für alle a, b, c, e, b, g für das Beispiel von fiddle , und ich möchte in der Lage sein, ihre Schlüssel auch zu kennen.Genau wie '(val, key, Index in accountTypes)' – senty

Verwandte Themen