我有1 ng-click添加md-datepicker:
<md-button ng-click="addItem()" type="button" >Add Infants</md-button>
然后ng-repeat设置为4:
ng-repeat="d in radioData | limitTo: 4 "
ng-value="d.value"
ng-class="{'md-align-top-left': $index==1}"
一切都按预期工作,但我有1 ng点击删除:
<md-button ng-click="removeItem()" type="button">Remove Infants</md-button>
然后问题开始,如果点击超过4次addItem()它没有显示但是为了删除它的开始删除额外的第一个它的某种奇怪。看起来像那里但没有显示。
我通过$index
阅读了关于跟踪的信息但没有工作。
我的控制器是:
$scope.addItem = function() {
$scope.radioData.push({});
};
$scope.removeItem = function() {
$scope.radioData.pop();
};
任何想法都会帮助我
答案 0 :(得分:1)
当您致电addItem()
时,您会将新结构推送到radioData
。但是,您通过limitTo:4
通过ng-repeat
将显示的数据限制为四个项目。这意味着您仍然可以向radioData
数组添加四个以上的项目,它们不会与ng-repeat
一起显示。因此,当您向radioData
数组添加四个以上的项目后删除元素时,radioData
数组中仍有四个以上的项目。
您可以通过限制radioData
数组中允许存在的项目数来解决此问题,如下所示:
$scope.addItem = function() {
if ($scope.radioData.length < 4) { //Check there is space for the new struct
$scope.radioData.push({});
}
};