如何使用knockout.js动态地将数据绑定到下拉列表?

5 jquery jsonp asp.net-mvc-4 knockout.js single-page-application

我是knockout.js的新手.我无法使用敲除js将数据从api绑定到下拉列表.

来自api和dropdown的我的Json数据是:

[{
ContactID: 0,
FirstName: "Aaa",
LastName: "bbb",
MobileNumber: null,
StartDate: "0001-01-01T00:00:00",
EndDate: "0001-01-01T00:00:00"
},
{
ContactID: 0,
FirstName: "Ccc",
LastName: "ddd",
MobileNumber: null,
StartDate: "0001-01-01T00:00:00",
EndDate: "0001-01-01T00:00:00"
}
]
<select id="selectmenu1" name="" data-theme="c" data-bind="optionsCaption: 'Choose...'">        </select> 
Run Code Online (Sandbox Code Playgroud)

我只是将firstname,lastname,contactID绑定到下拉列表,并将firstname和lastname显示为text,contactID是该项的value字段.有人可以就此提出一些建议吗?

nem*_*esv 12

您需要使用options绑定,您需要指定:

  • 您的项目数组options(参见文档示例3)
  • 您需要optionsValue: 'ContactID'将ContactID设置为值
  • 您需要指定一个函数optionsText来构建您的选择文本(参见文档示例4)

所以你的最终绑定看起来像:

<select id="selectmenu1" name="" data-theme="c" 
  data-bind="options: contacts, 
             optionsValue: 'ContactID', 
             optionsText: function(i) { return i.FirstName + ' ' + i.LastName }, 
             optionsCaption: 'Choose...'">        
</select>
Run Code Online (Sandbox Code Playgroud)

演示JSFiddle.