angularJS转盘负循环与模运算
angularJS carousel negative cycling with modulo operation
我正试图使用AngularJS构建一个旋转木马组件,下面是我在stackoverflow上找到的这个例子。
下一个函数按预期工作,但当我尝试对上一个函数执行同样的操作时,当它达到0时,它会变成负值,循环到-3,然后跳回0。
有人能解释一下% $scope.pages.length
究竟是做什么的,它是如何工作的吗?我试着在谷歌上搜索,但没有找到任何解释。
我的控制器:
.controller('portfolioController', function($scope) {
$scope.pages = [
{
image: "/../images/Placeholder.jpg",
alt: "thumbnail first page",
name : "1",
description : "Moj Prvi Webpage",
active : 1
},
{
image: "/../images/Placeholder.jpg",
alt: "thumbnail first page",
name : "2",
description : "Moj Drugi Webpage",
active : 0
},
{
image: "/../images/Placeholder.jpg",
alt: "thumbnail first page",
name : "3",
description : "Moj Tretji Webpage",
active : 0
},
{
image: "/../images/Placeholder.jpg",
alt: "thumbnail first page",
name : "4",
description : "Moj Četrti Webpage",
active : 0
}
];
$scope.current = 0;
$scope.Next = function() {
$scope.current = ($scope.current + 1) % $scope.pages.length;
}
$scope.Previous = function() {
$scope.current = ($scope.current - 1) % $scope.pages.length;
}
});
我的html:
<div class="col-xs-12">
<div class="thumbnail">
<img ng-src="{{ pages[current].image }}" alt="{{ pages[current].alt }}">
<div class="caption">
<h3>{{ pages[current].name }}</h3>
<p>{{ pages[current].description }}</p>
</div>
</div>
<div class="row carousel-thumbnails">
<div class="col-xs-12">
<div class="btn btn-info" ng-click="Previous()">Previous</div>
<img ng-repeat="img in pages" ng-class="{'active': img.active}" src="{{ img.image }}" alt="{{ img.alt }}">
<div class="btn btn-info" ng-click="Next()">Next</div>
</div>
</div>
</div>
有问题的行是一个模(或余数)运算。它取第一个值,除以第二个值,然后返回余数。
$scope.Previous
不起作用的原因是,一旦它达到零,它就会开始返回负数,而不是回到最大值(在这种情况下,该值将是$scope.pages.length - 1
)。为了避免这种情况,请尝试这样的操作(其中问号是三元/条件运算符:
$scope.current = $scope.current == 0 ? ($scope.pages.length - 1) : ($scope.current - 1)
这是一个正在工作的jsfiddle
相关文章:
- jQuery:循环一个具有不同超时值的循环
- 在循环中分配json值时,值被覆盖
- 如何在下面的ES6循环中获得前面的文本
- 为什么“;未定义的“;在JavaScript中结束循环
- Javascript循环不会自我更新
- 如何使用jquery处理php循环通过元素
- 而循环只设置php中输入字段中的第一个值
- 循环遍历数组中的特定索引
- Javascript返回值只在循环中返回一次
- 按照选项卡索引的顺序循环一个jQuery选择
- 循环遍历以数组为值的Javascript对象
- 为什么JavaScript在for循环为3时向所有4发出警报
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 循环结束/推送到数组之前在页面上呈现EJS
- 循环比赛位置算法
- angularJS转盘负循环与模运算
- 你能在没有循环的情况下对数组中的两个或多个特定元素使用算术运算吗
- 在Google脚本中对for循环变量进行数学运算
- 使用数学运算符循环对字符串数组(里面有数字)执行数学运算
- 打字.如何避免foreach循环中的此错误:;算术运算的左侧必须是类型'任意''数字'或者