2017-07-26 4 views
0

https://jsfiddle.net/7ueL5taw/36/ knockout.js: bearbeiten ausgewählte Objekt

https://jsfiddle.net/7ueL5taw/38/

Ich habe eine Liste von Objekten in <select> angezeigt, kann ich eine auswählen, und ich möchte erreichen, dass es Eigenschaften a und b sind:

  1. im
  2. kann
  3. <selects> nächsten zwei angezeigt werden änderte sich von den beiden <selects>

bin ich auf halbem Wege stecken in 1:

  • meine js Konsole gibt einen Fehler TypeError: selected(...) is undefined.
  • Die erste <select> aktualisiert sich bei der Auswahl eines der Einträge, aber nicht die zweite, zweite hat nicht einmal die Elemente.
  • Wenn ich den Wert der ersten ändern, wählen Sie das andere Element, wählen Sie die erste wieder, der Wert von 'a' Eigenschaft ist die ursprüngliche, nicht die, die ich zuvor festgelegt.

Wo sind meine Fehler? Wie kann ich diese

EDIT erreichen: kleine Änderung löst das letzte Problem

Antwort

1

Sie versuchen, den Wert Ihrer wählen auf eine Eigenschaft in einem undefinierten beobachtbaren selected().b() einzustellen.

Quick Fix: selected() != null ? selected().a() : null

<select style="width: 20%" data-bind="enable: selected, options: a, optionsCaption: 'Choose...', value: selected() != null ? selected().a() : null"> 
    </select> 
    <select style="width: 20%" data-bind="enable: selected, options: b, optionsCaption: 'Choose...', value: selected() != null ? selected().b() : null"> 
    </select> 

Siehe Arbeits fiddle

+0

omg, manchmal bin ich einfach nur dumm .... zum Glück, in diesen Fällen die Updates sind die einfachste :) THX! – HerrTeetrinken

Verwandte Themen