2

angular-UI select2を使用して私が抱えている問題を説明するための架空の例。「ゲーム」モデルを編集したい画面があるとしましょう。ゲームには、とりわけプレイヤーがいます。select2ドロップダウンメニューからプレーヤーを設定できるようにしたい。コードの例を次に示します: app.js

$scope.getGamePromise().then(function(results) {
    $scope.game = results;
    console.log(game.players); //prints [{name:'Joe',age: 15},{name:'Sally',age:16}]
});

$scope.players = [
    {
        name: 'Joe',
        age: 15
    },
    {
        name: 'Fred',
        age: 14
    },
    {
        name: 'Sally',
        age: 16
    },
    {
        name: 'Lucy',
        age: 13
    }
]

view.html

<select ngModel="game.players" ui-select2 multiple>
    <option ng-repeat="player in players" value="player">{{ player.name }}</option>
</select>

この「ゲーム」オブジェクトを保存したいときは、ゲーム オブジェクトをサーバーに送信します。サーバーは、game.players がオブジェクトの配列であることを期待しています。ただし、送信されるのは文字列です。私はangularにある程度精通しており、select2はまったく初めてです。select2 で game.players を文字列ではなくオブジェクトの配列として設定するにはどうすればよいですか?

4

1 に答える 1

1

別の解決策を見つけたか、問題が解決したと思います。とにかく私はここに投稿します:

使用する

<input>

それ以外の

<select>

例:

<input type="hidden" ui-select2="playersCfg" ng-model="players"/>

そして、次の構成:

$scope.playersCfg = {
        multiple: true,
        allowClear: true,
        data: { results: Player.query(), text: 'name' },
        formatResult: function(item) {
            return "<div class='select2-user-result'>" + item.name + "</div>";
        },
        formatSelection: function(item) {
            return item.name;
        }
    };

Player.query()

名前 (name) と識別子 (id) を含むプレーヤーのリストを返すリソースです。

それが誰かを助けることを願っています!

于 2014-01-20T12:24:35.227 に答える