跟踪AngularJS中的$ index

时间:2016-09-04 15:42:59

标签: javascript angularjs datepicker

我正在尝试使用我的应用程序中的datepicker实现不同的日期。我有一个复选框,如果用户选中该复选框,然后添加日期。 但似乎跟踪指数跟踪不起作用。

这是我的代码 -

<div class="form-group">       
   <label>6. Enter Onsite Details( Up to 4)</label> <br>
      <div ng-repeat="selecting in selects track by $index" >
          <div class="datePicker">  
              <button 
                 bs-datepicker 
                 class="btn btn-info" id="comm_cal_bttn"
                 name="date"
                 data-animation="am-flip-x"
                 data-autoclose="true"

                 ng-blur="getMinTime(index);"
                 ng-model="selects[index].commDate">
                    <i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Date
               </button>
               &nbsp;
               <p ng-show="selects[index].commDate">
                  {{selects[index].commDate}} <span class="text-muted"> {{selects[index].commDate}}</span> {{combinedTime.format('h:mm A')}}
               </p>
          </div>
          <input type="checkbox" ng-click="addMore(keyAdd);" ng-model="keyAdd"> 
          <label for="dateCheck">Add Additional</label>

</form>

以上代码选择日期调用函数getMinTime(index)但索引在我的控制器中显示为undefined。

我的控制器 -

$scope.selects = [{commDate : null}];
$scope.getMinTime = function(index){

// here index is showing undefined
}

我想根据索引值执行一些操作。假设我添加了4个日期。我在这做什么?有什么建议吗?

1 个答案:

答案 0 :(得分:2)

您需要将$index作为参数index

传递
<!-- other code -->

<div class="form-group">
  <label>6. Enter Onsite Details( Up to 4)</label>
  <br>
  <div ng-repeat="selecting in selects track by $index">
    <div class="datePicker">
      <button bs-datepicker class="btn btn-info" id="comm_cal_bttn" name="date" data-animation="am-flip-x" data-autoclose="true" ng-blur="getMinTime($index);" ng-model="selects[$index].commDate">
        <i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Date
      </button>
      &nbsp;
      <p ng-show="selects[$index].commDate">
        {{selects[$index].commDate}} <span class="text-muted"> {{selects[$index].commDate}}</span> {{combinedTime.format('h:mm A')}}
      </p>
    </div>
    <input type="checkbox" ng-click="addMore(keyAdd);" ng-model="keyAdd">
    <label for="dateCheck">Add Additional</label>

    <!-- other code -->