Ich möchte zwei Rückgabewerte in meinem OptionenText-Feld kombinieren, ich dachte, das wäre einfach, aber ich bin anscheinend falsch. Ich verwende auch einen Wert für das Optionsfeld außerhalb des normalen Ansichtsmodells. Hier ist das Original:Einen kombinierten optionsText in knockout.js setzen
<select style="width: 180px" data-bind="visible: false, value: fields.person, options: $root.extra.personList, optionsText: 'FirstName', optionsValue: 'LastName' }, select2: {}">
Dies funktioniert gut, die First Person zeigt und setzt den Wert als Name.
Das nächste Stück wirft einen Fehler:
<select style="width: 180px" data-bind="visible: false, value: fields.person, options: $root.extra.personList, optionsText: function (item) { return item.FirstName() + '-' + item.LastName() }, optionsValue: 'LastName', select2: {}">
Uncaught Typeerror: Anwesen ‚Vorname‘ von Objekt # ist nicht eine Funktion
Sind Sie sicher, 'FirstName' und' LastName' sind Observables? Wenn Sie nicht sicher sind, versuchen Sie dies: 'ko.unwrap (item.FirstName) + '-' + ko.unwrap (item.LastName)' – sroes
Ich bin mir nicht sicher, ich werde das ausprobieren. – Organiccat
Bevor Sie damit beginnen, das in Ihre Ansicht einzufügen, ziehen Sie in Betracht, diese Funktion in Ihr Ansichtsmodell zu verschieben und aufzurufen. Es wird zu _much_ cleaner code führen. –