5

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

我来自 api 和下拉列表的 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> 

我只是将名字、姓氏、联系人ID 绑定到下拉列表并将名字和姓氏显示为文本,而联系人ID 是该项目的值字段。有人可以就此提出一些建议吗?

4

2 回答 2

12

您需要使用optionsbinding,您需要在其中指定:

  • 您在中的项目数组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>

演示JSFiddle。

于 2013-08-08T11:40:59.170 回答
0

您可以使用淘汰赛映射插件。更多细节在 这里

您还可以查看 有关如何加载和保存数据的精彩教程

于 2013-08-08T11:51:21.393 回答