【发布时间】:2012-01-06 05:12:05
【问题描述】:
我在 jQuery 模板中使用的选择列表上使用选项绑定:
<select data-bind="options: contactsViewModel.emailTypes, optionsText: 'Value', value: EmailType"></select>
调用模板时会针对多个电子邮件地址进行淘汰赛。
EmailTypes 是 emailtype 对象的列表 电子邮件对象由包含电子邮件地址字符串值的 Value 属性、包含 Guid id 的 Id 属性和包含 emailtype 对象的电子邮件类型属性组成。
emailtype 对象由 Value 属性组成,该属性包含电子邮件类型的名称和一个 guid id。
下拉列表中正确填写了可用的电子邮件类型,但下拉列表未选择正确的项目。它不反映绑定到它的对象的值。
编辑: 带有显示选择行的模板被此调用: tbody data-bind="template: { name: 'emailTemplate', foreach: contactsViewModel.selectedContactEmails }">
selectedContactEmails 是一个充满电子邮件对象的 observableArray,在 Json 中如下所示:
{"EmailType":{"Value":"Home","Id":"191e8a64-8110-493c-b443-3063ff3a852a"},"ParentId":"191e8a64-8110-493c-b443-3063ff3a852c","Parent":null,"Value":"jan@jan.com","Id":"a7aae8fd-6ca3-49ae-b529-124d37a148ca"}
使用映射插件将这些对象的属性转换为可观察对象。
emailTypes 是一个由 EmailType 对象填充的 observableArray:
{"Value":"Home","Id":"191e8a64-8110-493c-b443-3063ff3a852a"}
【问题讨论】:
-
你能告诉我们你的视图模型吗?
-
视图模型相当大,所以我已经概述了重要的可观察对象和对象结构。希望你能帮忙。
标签: knockout.js