0

次のようなビューモデルがあります。

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"));
          })
    }

名前として TeamName を、値として TeamId を持つように選択をデータバインドするにはどうすればよいですか。

ここに私の試みがありますが、その言っているIDは認識されません:

<select id="teamNameLabel" onclick="nextfunction()" date-theme="f" data-bind="options: teams, optionsText: 'name', value: 'id'"></select>

onchange() で返される ID も必要です

4

1 に答える 1

1

だけを保存する場合は、optionsValue代わりにバインディングを使用する必要があります。valueid

<select id="teamNameLabel" data-bind="options: teams, optionsText: 'name', optionsValue: 'id'"></select>

バインディングを使用している場合は、valueプロパティ名を でラップしないでくださいquotes。この場合、プロパティはteamオブジェクト全体を格納します。

于 2012-10-23T14:16:36.090 に答える