我在jQuery模板中使用的选择列表上使用选项绑定:
<select data-bind="options: contactsViewModel.emailTypes, optionsText: 'Value', value: EmailType"></select>
Run Code Online (Sandbox Code Playgroud)
使用针对多个电子邮件地址的淘汰赛foreach调用该模板.
EmailTypes是emailtype对象的列表email对象包含Value属性,其中包含电子邮件地址的字符串值,Id属性包含Guid 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"}
Run Code Online (Sandbox Code Playgroud)
使用映射插件将这些对象的属性转换为observable.
emailTypes是一个填充了EmailType对象的observableArray:
{"Value":"Home","Id":"191e8a64-8110-493c-b443-3063ff3a852a"}
Run Code Online (Sandbox Code Playgroud)