2013-07-22 5 views
6

私は、ユーザーの好みに含めるよりも、車のエキストラを知る必要があります。 私は入力チェックボックスをajaxリクエストで得られた配列から作成し、ng-repeatで入力を生成しようとしています。主な目的は、ユーザーが選択したチェックボックスを知ることです。私は、選択したものを含む補助配列を作成するように私のアプローチをしたいと思いますが、ng-repeat反復の各項目に一意のngモデルを設定する方法がわからないので、選択されたリストアイテム。私は角度の私の知識の中に何かが残っていると思う。ここで私は、コントローラでng-repeat入力チェックボックスのNgモデルの属性は、常にリテラルになるか、エラーを返す

... HTMLで

$http.get('/ajax/ajax_get_extras/'+$scope.car.version+'/false').success(function(data) { 
       $scope.extras = data; 
     }); 
$scope.addExtra = function(){ // ... manage the auxiliar array } 

...

<div ng-controller="Controller"> 
     <form novalidate class="simple-form"> 
      <span ng-repeat="extra in extras"> 
       <input type="checkbox" ng-model="extra.id" ng-change="addExtra()" name="extra_{{extra.id}}" >{{extra.name}} - <strong>{{extra.real_price | onlynumber | currency}}</strong> 
      </span> 
     </form> 
</div> 

..今のところ持っていると私はextra.id doesntの以来こだわっているものです実際のextra.idに変換し、私は余分_ {{}} extra.idを試してみました<

文字列 "extra.id"> _としてとどまりますextra.id{{extra.id}}$ indexとng-modelとnoneは動作します。

+0

あなたの本当の動機はあなたが説明してください可能性がありますか! –

+0

主な目的(実際の動機)は、ユーザーが選択したチェックボックスを知ることです。質問を更新しました。 – R01010010

+3

はここから似たような質問です。ここから良いアイデアを得ることができます:http://stackoverflow.com/questions/17614361/how-to-update-ng-model-dynamically-in-ng-repeat/17614803#17614803 –

答えて

13

AngularJS 1.1.5には、ngRepeatで使用できる「トラック」があります。

だから、次のことができます。ここでは

<input type="checkbox" ng-repeat="e in extra track by $index" ng-model="extra[$index]"> 

は一例です:http://plnkr.co/edit/6lNo6R5EPsNGHUU6ufTE?p=preview

+0

もうまくいった! – R01010010

関連する問題