【发布时间】:2017-11-13 15:48:22
【问题描述】:
我是一个初学者,想玩一些 javascript 来学习/理解它在做什么。我在 AngularJS 网站上找到了这个基本的“待办事项列表”脚本并开始使用它。当您选中一个复选框时,我添加了一条消息,但是当我取消选中它时,我得到了相同的消息。因此最好的选择是当它被选中时你不能取消选中它。我已经找了很长时间,但找不到正确的答案。也许你们中的一些人知道怎么做?
提前致谢!
这是我的代码 HTML:
<div ng-controller="TodoListController as todoList">
<span>Nog {{todoList.remaining()}} van de {{todoList.todos.length}} te gaan!</span>
<!--[ <a href="" ng-click="todoList.archive()">archive</a> ]-->
<ul class="unstyled">
<li ng-repeat="todo in todoList.todos">
<label class="checkbox">
<input type="checkbox" onclick="alert('Well done!')" ng-model="todo.done">
<span class="done-{{todo.done}}">{{todo.text}}</span>
</label>
</li>
</ul>
</div> <!--einde ng-controller -->
AngularJS
angular.module('todoApp', [])
.controller('TodoListController', function() {
var todoList = this;
todoList.todos = [
{text:'Leer HTML5', done:true},
{text:'Leer CSS3', done:true},
{text:'Leer Javascript', done:false},
];
todoList.remaining = function() {
var count = 0;
angular.forEach(todoList.todos, function(todo) {
count += todo.done ? 0 : 1;
});
return count;
};
todoList.archive = function() {
var oldTodos = todoList.todos;
todoList.todos = [];
angular.forEach(oldTodos, function(todo) {
if (!todo.done) todoList.todos.push(todo);
});
};
});
【问题讨论】:
-
所以你想在选中复选框时禁用它?
-
是的,这就是我想要达到的目标。
-
尝试更改 跨度>
-
感谢 Sangwin,那一小段代码完成了这项工作!
-
很高兴我能帮上忙 :)
标签: javascript html angularjs checkbox