我有一个看起来像这样的viewmodel:
var teamViewModel = {
teams: ko.observableArray([]),
clearTeams: function(){
this.teams.removeAll();
},
addTeam: function (id, name, isChecked) {
t = new team(id, name, isChecked);
this.teams.push(t);
}
};
我正在让所有团队都这样:
function GetAvailableTeams() {
var jqxhr =
$.getJSON('http://localhose/Service.svc/GetTeamsAll',
function (data) {
teamViewModel.clearTeams();
$.each(data.GetTeamsAllResult,
function (key, val) {
teamViewModel.addTeam(val.TeamId, val.TeamName, true);
});
ko.applyBindings(teamViewModel, document.getElementById("teamNameLabel"));
})
}
如何对select进行数据绑定,将TeamName作为名称,将TeamId作为Value。
这是我的尝试,但其说法ID无法识别:
<select id="teamNameLabel" onclick="nextfunction()" date-theme="f" data-bind="options: teams, optionsText: 'name', value: 'id'"></select>
我也希望id返回onchange()
答案 0 :(得分:1)
如果您只想存储optionsValue
,则应使用value
绑定而不是id
:
<select id="teamNameLabel" data-bind="options: teams, optionsText: 'name', optionsValue: 'id'"></select>
使用value
绑定时,不应使用quotes
包装属性名称。在这种情况下,属性将存储整个team
对象。