2017-01-10 8 views
3

特定の日の時間計算のためのドロップダウンとテキストボックスがあります。テキストボックスには、期間が入力されます。これに基づいて、ドロップでタイムスロットが生成されます-ダウン。これは、1つのテキストボックスと1つのドロップダウンでうまく動作しますが、複数のテキストボックスとドロップダウンでは、最初のテキストボックスに割り当てられているのと同じ値が使用されます。だから、毎日のために複数の値を取得する方法と間違いは何ですか。複数のテキストボックスとドロップダウンを表示するには、ng-repeatを使用しました。私を助けてください、何かが間違っていたら私を修正してください。ありがとう:)複数のテキストボックスとドロップダウンでの作業

HTML:

<tr ng-repeat="field in fields" name="slotSelection"> 
<td align="center"> 
<ion-checkbox ng-model="field.checked">{{field.name}} </ion-checkbox> 
</td> 
<td> 
<select ng-model="time" ng-options="time for time in timeslots"> 
<option value="">select</option> 
</select> 
</td> 
<td> 
<input type="text" ng-model="interval" ng-blur="setTimeSlots(interval)"> 
</td> 
</tr> 

コントローラー:

$scope.fields = [{ id: 1, name: 'Sunday' }, 
     { id: 2, name: 'Monday' }, 
     { id: 3, name: 'Tuesday' }, 
     { id: 4, name: 'Wednesday' }, 
     { id: 5, name: 'Thursday' }, 
     { id: 5, name: 'Friday' }, 
     { id: 5, name: 'Sunday' }] 

     $scope.setTimeSlots = function (interval) { 
     var startingTime = moment().hours(8).minutes(0); 
     $scope.timeslots = []; 
     for(var i=0; i < interval; i++){ 
     $scope.intervals=60; 
      $scope.timeslots.push(startingTime.add($scope.intervals,'minute').format("h:mm")); 
    } 
    } 

答えて

1

あなたはfieldsスコーププロパティで各fieldtimeslotsを追加する必要があり、あなたが現在fieldsetTimeSlotにメソッドを渡すことができますが図示のように、

<input type="text" ng-model="interval" ng-blur="setTimeSlots(interval, field)"> 
日がチェックされたとき setTimeSlotsに続い

、以下に示すようにタイムスロットを押し、

$scope.setTimeSlots = function(interval, field) { 
    var startingTime = moment().hours(8).minutes(0); 
    field.timeslots = []; 
    for (var i = 0; i < interval; i++) { 
     $scope.intervals = 60; 
     field.timeslots.push(startingTime.add($scope.intervals, 'minute').format("h:mm")); 
    } 
    } 

ワーキングplunkr here

+0

Iは、行全体を読むことができるようになります? – user7397693

+0

'日にちがチェックされましたか? ' 'setTimeSlots'関数は間隔と、現在の' field'オブジェクトを 'fields'プロパティー – Thaadikkaaran

+0

から受信します。チェックボックスがあるので、選択した日数を期間とタイムスロットとともに表示したい場合は、取得できます。 、 'selected'、 'selectedSlot':9}] 'json 'と表示されます。 – user7397693

関連する問題