角度,单击穿过阵列
Angular, click through array
我有一个变量被设置为数组索引,我想在单击时尝试循环使用它。我最初设置为:
$scope.calenderState = ["day","week","month","year"];
$scope.mod2m4 = $scope.calenderState[0];
以及连接的点击功能,发送类似mod2m4
的:
ng-click ="changeCal(mod2m4)"
所以现在它会发送"天"。每次我点击它,我都希望它增加到下一个项目,(所以是星期),除非它是年份,然后回到今天。我该如何处理这种情况?
编辑:我可以这样解决它,但我想知道是否还有更优雅的解决方案?
var ind = _.indexOf($scope.calenderState, current);
if(ind == 3){
$scope.mod2m4 = $scope.calenderState[0];
}else{
$scope.mod2m4 = $scope.calenderState[ind + 1];
}
也许可以尝试将索引仅存储为范围变量,然后将增量操作抽象为一个函数(以处理环绕)
$scope.index = 0
$scope.increment = function() {
$scope.index += 1;
if ($scope.index > 3) {
$scope.index = 0;
}
}
然后在您的视图中,如果您想显示值,可以使用以下表达式:
<p>{{calendarState[index]}}</p>
如果您不介意数组的顺序:
$scope.calenderState.push($scope.calenderState.shift());
$scope.mod2m4 = $scope.calenderState[0];
相关文章:
- 使用clickToggle并在单击另一个元素时关闭元素
- 单击时将焦点更改为元素
- 单击F5时如何停止页面加载
- 通过单击表单中的按钮,在代码生成中使用javascript生成字母数字代码
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 单击jquery清除输入值
- 单击按钮以等待单击按钮
- 在单击href链接的同时下载文件
- 单击顶部导航时如何进行向下滚动效果(向下滑动).
- 使图像在单击时展开到不大于浏览器
- 单击按钮后如何逐个调用分区,上一个分区将隐藏
- 如何在单击复选框后调用控制器方法
- 单击页面上的链接后高度发生变化
- 使用jquery在单击时在单元格中输入值
- 将纯文本URL转换为可单击链接
- ASP.NET通过单击JavaScript按钮触发c#事件
- 单击按钮更改阵列中的图片
- 捕获阵列中ID为的元素上的单击
- 单击时加载图像阵列并加载下一个图像
- 如何使用阵列中的特定数据-单击示例