2016-06-29 6 views
0

mein Code zum Anzeigen dieser linkAngularJS Zweiweg Bindungsvariablen Array-Elemente

folge ich eine Richtlinie erstellt haben, die ein Array von Elementen Griffe (es wird immer zwei sein, weil es ein „von“ ist und „bis“ Datumspaar).

Ich möchte die Array-Elemente zugänglich als separate Werte für den späteren Gebrauch machen, so dass ich auf die Array-Elemente beziehen wie diese

vm.data = ['data a', 'data b']; 
    vm.separateData = vm.data[0]; 
    vm.otherData = vm.data[1]; 

Wenn ich einen Zweiweg-bind in die Richtlinie umzusetzen, die vm.data[0] und vm.data[1] Referenzen sind aktualisiert, aber die vm.separateData und vm.otherData sind nicht.

Gibt es eine Möglichkeit, dies zu erledigen, oder sollte ich einfach den Rest meiner App neu strukturieren (wo nötig), um Array-Elemente aufzunehmen?

In meiner Geige link (wie oben) versuchen Sie, die Texteingabewerte zu ändern, und Sie werden sehen, was ich meine.

+0

wirklich Ihre Frage nicht getting –

+0

die Geige öffnen und versuchen, die Texteingabevariable zu ändern, werden Sie Sehen Sie, was ich meine, ich weiß wirklich nicht, wie man es klarer macht, ohne einen Roman hier zu schreiben - sorry – Snsa90

Antwort

1

vm.data [0] ist ein String und somit ein primitiver Datentyp in Javascript, der unveränderlich ist. Sie binden also die unveränderliche Zeichenfolge 'Data a' an vm.separateData, die keine Referenz auf Daten [0] ist.

Wenn Sie den Verweis auf das Array in vm.separateData kopieren möchten, versuchen Sie, die Zeichenfolgen in andere JavaScript-Objekte zu integrieren, z.

vm.data = [{"value":"Data a"}, {"value":"Data b"}] 

und dann können Sie

vm.separateData = vm.data[0]; 

und Zugriff auf den Wert über

vm.separateData.value 
+0

gültiger Punkt danke! aber es scheint, dass es nicht ganz funktioniert - schau mal https://jsfiddle.net/Snsa90/gyf3dexa/1/ ... habe ich dich falsch interpretiert? – Snsa90

+0

vielleicht sollte ich nur die Abfragen neu strukturieren, die ich im Rest der App habe, um Daten [0] statt variabler Werte zu nehmen, so würde es funktionieren - ich habe mich nur gefragt, gibt es eine weniger riskante Problemumgehung ... – Snsa90

+0

Sie jetzt noch Kopieren Sie die unveränderliche Zeichenfolge, wenn Sie Daten [0] .value verwenden. Schau hier: https: //jsfiddle.net/hn08wuhL/ – Thorsten