在knockoutjs中使用optgroups进行多选

时间:2012-05-31 12:50:58

标签: jquery asp.net-mvc-3 knockout-2.0

我有一个关于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

所以,在我需要的报价中,与John Doe的联系人列表和邮件john2@doe.com以及联系人Jane Doe和邮件jane@doe.com。

我希望你理解我的问题并找到解决办法:)

谢谢!

0 个答案:

没有答案