2016-11-08 4 views
0

AngularJsには2つの配列があります。 は今、最初に私がテーブルに週アレイを反復しています:インライン配列でng-repeatを反復処理すると、配列内のすべてのオブジェクトが更新されます。

<tr ng-repeat="week in weeks"> 
<!-- content for every week with occupancy-array --> 
</tr> 

をこの表では、私が占有-アレイの第二ngのリピートを実装している、週次のような構造で:

Array[WeekId] = {early: null, late: null, night: null} 

3週間、オブジェクトは3回存在します。

オブジェクトは、入力フィールドを持つ週ごとに操作可能でなければなりません。 は、だから私のHTMLは次のとおりです。

<tr ng-repeat="week in weeks"> 
    <td ng-repeat="(title, value) in occupancies[week.id]"> 
     <input class="form-control" ng-model="value"/> 
    </td> 
</tr> 

しかし、この場合には、配列がスコープ内に変更されませんので、私は、新しい値に達することによって問題を抱えています。

それでは、私はこれに私の第二ngのリピートを変更することを決めた:

<td><input class="form-control" ng-model="occupancies[week.id].early"/></td> 
<td><input class="form-control" ng-model="occupancies[week.id].late"/></td> 
<td><input class="form-control" ng-model="occupancies[week.id].night"/></td> 

、スコープは私の占有アレイ内のオブジェクトがミラーリングされていることが、問題と、変更されます。それは、1週間目の早い時期に占有率が変わることを意味します。

私は助けが必要です!

+0

[JS Fiddle](https://jsfiddle.net/)を提供できますか? – Natiq

+0

はい、お待ちください。 $ indexなしで作業するために構造を変更しました。 – Phil

+0

ここにあります:https://jsfiddle.net/8Lmq8ub5/ – Phil

答えて

0

私はあなたが占有物にオブジェクトを割り当てて、もう一度試してみることができると思います。

$scope.occupancies = {}; 
+0

同じ問題。しかし、私は占有配列の設定の一部を削除することを考えました。なぜなら、2番目のng-repeatを使用しないので、不必要なためです。今それは動作します! – Phil

関連する問題