在角度Js中切换多个选项
Toggling through multiple options in Angular Js
我正在创建一个小型todo应用程序来学习Angular。我被困在一个地方。我的任务将作为链接列表列出。每次用户点击它时,它的状态都会改变。因此,当用户单击其状态变为doing
的任务。然后在下一次单击中,它变为done
。点击一下就变成了later
。这也应该反映存储回$scope
,从那里加载。我不知道,在Angular中,什么是最好的方法。
现在我有$scope.tasks
存储所有任务,$scope.tasks.$status
保存可用的stasues。
var app = angular.module("app");
app.controller('Ctrl', function($scope) {
$scope.tasks = [
{id: 1, text: 'Do something.', status: 'doing'},
{id: 2, text: 'Undo that thing.', status: 'done'},
{id: 3, text: 'Redo it again.', status: 'started'},
{id: 4, text: 'Responsive', status:'later'}
];
$scope.tasks = {
status: ['doing','done', 'later' ]
};
$scope.clicked = function() {
//some logic.
};
}
下面是html。
<div ng-app="app" ng-controller="Ctrl" class"container">
<div ng-repeat="task in tasks" >
<li>
<a href="#" ng-click="clicked()" id="{{task.id}}">
{{task.text}} - {{task.status}}
<a/>
</li>
</div>
</div>
到目前为止我所做的一切正确吗?切换选项的最佳方法是什么?有什么功能吗?
根据您下一步要做什么,有很多解决方案。最简单的似乎是:
$scope.clicked = function(task){
task.status = nextStatus(task.status);
};
function nextStatus(st){
return $scope.statuses[$scope.statuses.indexOf(st) + 1];
}
注意,您还应该将任务传递给函数:
<a ng-click='clicked(task)'>
相关文章:
- Selectize.js:如何对整数值的选项进行排序
- 通过js在新选项卡中有条件地打开url
- 如何使用JS禁用表行,并在MYSQL中插入所选选项
- 如何在jquery.easytabs.js中获取当前选项卡
- AngularJS选项卡集中的Chart.js不呈现
- 更改事件的fullPage.js选项
- 如何在页面加载angular js上设置从ajax调用中选择的选项
- 使用js将动态内容添加到选择选项列表中
- Angular.js通过对象关键点上的ng选项进行跟踪
- Angular js-ng选项不起作用
- 在ractive.js中获取所选选项文本
- 如何在angular js中的select选项中获取所选项目id
- Node.js和Mongodb安全+源代码加密选项
- 如何从Angular.JS中的子页面更新选项卡视图
- Knockout js 条件选项绑定
- 在带有 bootbox 的自定义对话框中添加选项以选择表单控件.js在 ASP.NET MVC 中
- 重叠的选项卡 JS CSS HTML.
- 在Magento的后端块(选项卡编辑表单)中添加额外的js
- 首选项.xul 和首选项.js之间的通信
- 如何在角度中使用默认选项.js选择框