我试图使用AngularJS创建一个盒子网格。我在这个fiddle中简化了我的方法,它很好地说明了这个问题。
这可能是我使用ng-switch的方式,但你可以看到你是否点击0或1它更新数据(显示在网格顶部)和DOM,但是如果你更新2它会更新数据正确,但" 12"更新而不是2.模式继续越高你去。如果你的对象少于10个,那么它们似乎都能正常工作,但不会超过它。
这是HTML:
<div class="day" ng-controller="Controller" >
{{hours}}
<div ng-click="hourClick($index)" ng-repeat="hour in hours" ng-switch="$index % 4" class="quarter-hour">
<div class="clock-back-1" ng-switch-when="0">{{$index}} - {{hour}}
</div>
<div class="clock-back-2" ng-switch-when="1">{{$index}} - {{hour}}
</div>
<div class="clock-back-3" ng-switch-when="2">{{$index}} - {{hour}}
</div>
<div class="clock-back-4" ng-switch-when="3">{{$index}} - {{hour}}
</div>
</div>
</div>
<script>
function Controller($scope){
$scope.hours = {};
for (var i=0;i<20;i++){
$scope.hours[i] = 0;
}
$scope.hourClick = function(index){
$scope.hours[index] = 1;
}
}
</script>
以下是fiddle链接。
潜在问题可能是:
他们用来格式化我的数据
我使用ng-switch的方式
?????
感谢。
答案 0 :(得分:0)
这是我创建数据的方式。我需要用对象创建一个数组。此代码似乎解决了这个问题。以下是修订后的fiddle
的链接<div class="day" ng-controller="Controller" >
{{hours}}
<div ng-click="hourClick($index)" ng-repeat="hour in hours" ng-switch="$index % 4" class="quarter-hour">
<div class="clock-back-1" ng-switch-when="0">{{$index}} - {{hour.id}}
</div>
<div class="clock-back-2" ng-switch-when="1">{{$index}} - {{hour.id}}
</div>
<div class="clock-back-3" ng-switch-when="2">{{$index}} - {{hour.id}}
</div>
<div class="clock-back-4" ng-switch-when="3">{{$index}} - {{hour.id}}
</div>
</div>
</div>
<script>
function Controller($scope){
$scope.hours = [];
for (var i=0;i<20;i++){
$scope.hours[i] = {"id":0};
}
$scope.hourClick = function(index){
$scope.hours[index].id = 1;
}
}
</script>