在AngularJS中通过$index进行跟踪

4

我正在尝试在我的应用程序中使用日期选择器来实现不同的日期。如果用户选中复选框,则会添加日期。但是似乎按索引跟踪不起作用。

以下是我的代码-

<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)的函数,但是我的控制器中显示索引未定义。

我的控制器代码-

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

// here index is showing undefined
}

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


尝试传递$index而不是index - Mikki Kobvel
1个回答

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 -->

啊,我的错。非常感谢。我会在10分钟内接受答案。 - sav vv

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接