我试图理解为什么当我取消注释下面的代码行时,它不再显示我在索引页面上显示的员工数组,而且在我提交表单以添加员工后,它也不再显示它,所以是的,如果我保持原样,那么它工作得很好,但我需要它与本地存储一起工作。
angular.module("MyApp").service("dataService", function() {
var employeesArray = [{employeeName:'Me', employeeStreet:'12345 Local Street', employeeCity:'MyCity', employeeState:'MyState', employeeZipCode:'12345'}];
this.getEmployees = function() {
/*
var str = localStorage.getItem("Employees");
employeesArray = JSON.parse(str) || employeesArray;
*/
return employeesArray;
}
this.addEmployee = function(employee) {
employeesArray.push(employee);
/*
var str = JSON.stringify(employeesArray);
localStorage.setItem("Employees", str);
*/
}
this.removeEmployee = function(employee) {
employeesArray.splice(employeesArray.indexOf(employee), 1);
/*
var str = JSON.stringify(employeesArray);
localStorage.setItem("Employees", str);
*/
}
});
最佳答案
解决方案是每次使用之前从 localStorage 获取员工列表。所以尝试添加
var employeesArray = this.getEmployees();
作为 addEmployee
和 removeEmployee
方法的第一行。在测试新更改之前,不要忘记运行 localStorage.clear()
。
请查看这个 JS fiddle :http://jsbin.com/qawabifefa/2/edit?js,output
关于javascript - 本地存储不适用于对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26833384/