2016-07-01 2 views
1

私はangularJSの新しい種類ですAngularJSオブジェクトをそのプロパティでモデルに割り当てます

私はコードを持っています。すべてが間違っています。 オプション付きのjsonオブジェクトを作成しています。

プロパティ "ラインアップ"を持つ "match"というjsonオブジェクトがあります。

はあなたがどんなプレーヤーのためのチェックボックスをチェックすると、あなたのようなラインナッププロパティにこのプレーヤーを追加します。

lineup:[{uid:1,pos:0},{uid:2,pos:0}] 

私が知りたいのは、私がlineup配列内の特定の項目に選択を割り当てることができる方法です。ところで、私は私が選択ディレクティブのためng-optionsを使用することができます知っているが、これは私がここに来る前になった最後のコードです

lineup:[{uid:1,pos:2},{uid:2,pos:0}] 

:私はプレイヤー1のための選択を変更した場合の例では、その後、ラインナップに変わります。

<ul class="list-group" ng-if="match.formation > 0"> 
<li class="list-group-item" ng-repeat="p in players track by $index"> 
    <input type="checkbox" ng-model="p.lineup" 
      ng-change="setLineup(p,$index)" 
      ng-disabled="match.lineup.length > 10 && (p.lineup == 0 || !p.lineup)" /> 
    {{p.player}} 
    <select ng-model="" class="pull-right"> 
     <option ng-repeat="e in NotSelectedPosition() track by $index" 
       value="{{e.id}}">{{$index+1+'.- '+e.name}}</option> 
    </select> 
</li> 

編集: プレーヤーもJSONオブジェクトである:

$scope.players = [{uid:1,lineup:false,name:'player1'}, 
        {uid:2,lineup:false,name:'player 2'},etc 
       ]; 

形成がp.uidと一緒に結合するだけ整数値

+0

完全なJSONを簡単に共有してデバッグすることはできますか? –

+0

$ scope.match = {gteam1 = 0、gteam2 = 0、ラインアップ= [{uid:1、pos:0}、{uid:2、pos:0}]}のようになります。 – user2449506

+0

プレイヤー、フォーメーションのようなあなたのポストから欠けているアイテムがほとんどないので、コントローラを共有することはできますか? –

答えて

0

あるbeacuseをp.lineupありませんあなたはng-repeat = "p track by $ index"というトラックを使用しています。つまり、配列内のオブジェクトを1つずつ取得します。

+0

チェックボックスngmodelsはp.lineupで完璧に動作します。チェックすると、最後のjsonオブジェクトにuidが追加されます。問題は選択モデルのモデルにあります – user2449506

関連する問題