【发布时间】:2017-11-19 05:28:53
【问题描述】:
我有几个问题。我的 javascript/编码游戏仍然是一个非常非常初学者我不明白这个网站上已经存在的“保存复选框值”问题。
我认为解决方案非常简单,但我有几个问题。
让我解释一下我的想法/问题: 因为我试图通过向我在 angularJS 网站上找到的现有脚本添加新函数来学习 javascript,所以我偶然发现了一些我自己无法弄清楚的东西。
我有这个复选框列表,并希望保存复选框输入。访问页面时,复选框都是空的。当我检查其中一个框时,我收到一条小消息,上面写着“干得好!”。当我刷新页面时,该框再次为空。我想保存用户输入,以便复选框保持选中状态。
我的代码: 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">
<div class="column">
<li ng-repeat="todo in todoList.todos">
<label class="checkbox">
<input type="checkbox" onclick="alert('Well done!')" ng-model="todo.done" ng-disabled="todo.done">
<span class="done-{{todo.done}}">{{todo.text}}</span>
</label>
</li>
</div>
</ul>
</div> <!--end ng-controller -->
Javascript/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);
});
};
});
我已经阅读了很多其他人提出的问题,但我并不真正了解实现这一目标的所有选项。我找到了这个小小提琴代码,这正是我正在寻找的:http://jsfiddle.net/R73vy/ 当我将此代码复制到自己的 Html 和 js 文件中时,它不起作用。此代码使用客户端通过 cookie 存储数据。我如何自己使用这个工作代码?我错过了什么?是否可以使用我现有的代码来实现这一点?
在此先感谢并原谅我的绝对初学者水平。 如果您有任何问题,请告诉我!
【问题讨论】:
-
您使用的是 angular 1 还是 angular 2?
-
我的脚本参考/angularjs/1.6.4/angular.min.js
标签: javascript html angularjs checkbox angular-local-storage