如何从Javascript端获取$ Index

时间:2018-10-09 22:51:01

标签: angularjs angularjs-directive angularjs-ng-repeat

如何从$ index基础检查值。假设在textboxStart索引和TextboxEnd中。当用户输入开始索引5和结束索引10时,将自动从5到10索引中选中该复选框。请帮助我

<tr ng-repeat="item in MyList">
    <td>{{$index}}</td>
    <td>
        <label class="mdl-checkbox mdl-js-checkbox" for="checkbox33">
            <input autocomplete="off" ng-model="item.checked" 
                   type="checkbox" id="checkbox33"
                   class="mdl-checkbox__input" unchecked>
            {{CheckItems()}}
        </label>
    <td>{{item.Name}}</td>
    <td>{{item.PilgrimID}}</td>
    <td>{{item.GroupName}}</td>
    <td>{{item.PassportNo}}</td>                      
    <td>{{item.Gender}}</td>
    <td>{{item.SubAgentName}}</td>  

enter image description here

3 个答案:

答案 0 :(得分:0)

您可以通过在ItemList模型中添加一个属性(例如ItemIndex)来实现, 并通过放置不显示任何内容的输入框,您可以在ItemList中获取索引值,并可以从javascript端执行所需的操作,

<td><input type="text" style="display:none;" ng-model="item.ItemIndex"
           ng-value="$index"/>{{$index}}
</td>

答案 1 :(得分:0)

只需将所选值推入数组selectedItemIndexes就像ng-checked="selectedItemIndexes.includes($index)"

https://stackblitz.com/edit/angularjs-snavdn

答案 2 :(得分:0)

使用ng-change指令指定更新功能:

<div>Input Start
  <input ng-model="inputStart" ng-change="updateSelections(inputStart,inputEnd)" />
</div>
<div>Input End
  <input ng-model="inputEnd" ng-change="updateSelections(inputStart,inputEnd)" />
</div>

然后更新选择:

$scope.updateSelections = function(iStart, iEnd) {
    $scope.MyList.forEach((x,index)=>item.checked = (iStart<=index && index<=iEnd));
};