Options de liaison: sélectionnez liste ne reflète pas la valeur de l'objet lié
Je suis en utilisant les options de liaison sur une liste de sélection utilisé jQuery template:
<select data-bind="options: contactsViewModel.emailTypes, optionsText: 'Value', value: EmailType"></select>
Le modèle est appelé avec un knock-out foreach pour plusieurs adresses e-mail.
EmailTypes une liste d'objets emailtype
L'objet du courriel se composent de la Valeur de la propriété qui contient la chaîne de valeur de l'adresse e-mail, un Identifiant de la propriété qui contient un identificateur id et un email type de propriété qui contient le emailtype objet.
La emailtype objet se compose de la Valeur de la propriété qui contient le nom du type de courriel et un guid id.
La liste déroulante est correctement rempli avec de l'électronique, mais la liste n'est pas sélectionner l'élément de droite. Elle ne reflète pas la valeur de l'objet lié.
EDIT:
Le modèle avec le montré sélectionnez la ligne est appelé par ceci:
tbody data-bind="modèle: { nom: 'emailTemplate' foreach: contactsViewModel.selectedContactEmails }">
selectedContactEmails est un observableArray rempli d'e-mails avec des objets, à la recherche de ce genre dans Json:
{"EmailType":{"Value":"Home","Id":"191e8a64-8110-493c-b443-3063ff3a852a"},"ParentId":"191e8a64-8110-493c-b443-3063ff3a852c","Parent":null,"Value":"[email protected]","Id":"a7aae8fd-6ca3-49ae-b529-124d37a148ca"}
Les propriétés de ces objets sont convertis à observables à l'aide de la cartographie plugin.
emailTypes est un observableArray rempli avec EmailType objets:
{"Value":"Home","Id":"191e8a64-8110-493c-b443-3063ff3a852a"}
Le viewmodel est plutôt grand, donc je l'ai souligné les importantes observables et la structure de l'objet. J'espère que vous pouvez aider.
OriginalL'auteur RolandG | 2011-11-25
Vous devez vous connecter pour publier un commentaire.
La liste déroulante ne sélectionnez pas la délimitée de la valeur parce que le menu déroulant ne sait même pas de quel attribut est-il délimité. Vous aurez besoin de spécifier le
selectedOptions
attribut dans la liaison de données.La
options
attribut indique déroulant sur le tableau qu'il détient.La
optionsText
attribut indique déroulante de la propriété qui est utilisée pour afficher pour chaque élément de tableau.La
optionsValue
attribut indique déroulante de la propriété qui est utilisée pour la valeur de l'option.Comment la liste déroulante de savoir quelle valeur est-elle affectée?
Utilisation options sélectionnées
Je ne vois pas une liste de sélection dans cet exemple.
désolé c'est le bon lien > jsfiddle.net/ucAUC/3 (non je ne suis pas ivre 😛 )
🙂 Oui, ça fonctionne. Mais pourquoi ne pas travailler si je remplace le viewModel avec ceci: var aigle = { EmailType: ko.observables({"Value":"l'École","Id":"491e8a64-8110-493c-puis la b443-3063ff3a852a"}) };
jsfiddle.net/ucAUC/4
OriginalL'auteur neebz
C'est difficile sans voir votre viewModel mais une chose ressort de l'analyse que vous avez qualifié votre valeur options (
options: contactsViewModel.emailTypes
), mais pas votre "valeur" (value: EmailType
). Avez-vous besoin d'ajouter le chemin d'accès à EmailType par exemple.value: contactsViewModel.EmailType
??Aussi pouvez-vous confirmer que
EmailType
est le même type d'objet qui est dans votreemailTypes
collectionOriginalL'auteur Mark Robinson