私は Knockoutjs に精通しており、入力選択でサービス呼び出しを実行しようとしています。
オブジェクトは次のようになります。
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://localhost/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 id="teamNameLabel" date-theme="f" data-bind="options: teams, optionsText: 'name', value: 'id'"></select>
select ステートメントのオプションが選択されたときにグローバル変数 TeamId を更新するにはどうすればよいですか?
編集:
function GetAllUsersByTeam(){
var url = 'http://localhost/Service.svc/GetUsersByTeam/'+TeamId;
var jqxhr =
$.getJSON(url,
function (data)
{
colleagueViewModel.clearColleagues();
$.each(data.GetUsersByTeamResult, function (key, val) {
colleagueViewModel.addColleague(val.FirstName, val.LastName, val.EmailAddress, val.PhoneNumber, val.LocationName, val.CapabilityId, val.CoeId);
});
ko.applyBindings(colleagueViewModel, document.getElementById("colleaguesListView"));
})
}