javascript - 本地存储不适用于对象数组

标签 javascript angularjs

我试图理解为什么当我取消注释下面的代码行时,它不再显示我在索引页面上显示的员工数组,而且在我提交表单以添加员工后,它也不再显示它,所以是的,如果我保持原样,那么它工作得很好,但我需要它与本地存储一起工作。

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();

作为 addEmployeeremoveEmployee 方法的第一行。在测试新更改之前,不要忘记运行 localStorage.clear()

请查看这个 JS fiddle :http://jsbin.com/qawabifefa/2/edit?js,output

关于javascript - 本地存储不适用于对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26833384/

相关文章:

javascript - JS 中对象数组按两个值排序

javascript - 隐藏包含特定字符串的div

javascript - 缩放多边形使边匹配

javascript - 如何检查富文本编辑器内容是否为空?

angularjs - AngularJS 可以在 Java EE MVC 架构 : JSP->Servlet->EJB3. 1->Business Object->DAO 中工作吗

javascript - 在 angular.forEach 循环中等待 promise

javascript - 当在模板内部使用粘性指令时,ngSticky 插件不起作用

javascript - 将两个多维数组映射到一个对象中

angularjs - 如何在不打开浏览器的情况下在 docker 环境中测试 Angular 应用程序?

javascript - 检测事件监听器是否附加到 Angular 中的指令