我有一个关于 KnockoutJS 和多选组的问题。我有这个结构:
var Contact = function (contact) {
var self = this;
self.idContact = contact.IdContact;
self.displayName = contact.DisplayName;
self.mails = ko.observableArray(ko.utils.arrayMap(contact.Emails, function (mail) {
return { mail: mail };
}));
};
var Quote = function (quote) {
var self = this;
self.contacts = ko.observableArray(ko.utils.arrayMap(quote.ProviderContacts, function (contact) {
return new Contact(contact);
}));
};
并且主 ModelView 有一个 Quote 和 mainContactsList。然后我有选择:
<select data-bind="foreach: contacts, value: $root.quote.contacts" multiple="multiple">
<optgroup data-bind="attr: {label: displayName, value: idContact}, foreach: mails">
<option data-bind="text: mail, value: mail"></option>
</optgroup>
</select>
所以.. 问题是我不知道如何仅使用我选择的联系人和选择的电子邮件来保存报价。我的意思是,选择看起来像这样:
[John Doe]
---- john@doe.com
---- john2@doe.com--->selected by client
[Jane Doe]
---- jane@doe.com--->selected by client
所以,在我的报价中,我需要有 JohnDoe 的联系人列表和邮件 john2@doe.com 以及联系人 Jane Doe 和邮件 jane@doe.com。
我希望你能理解我的问题并有一个解决方案:)
谢谢!