Localstorage不使用对象数组

时间:2014-11-09 21:10:32

标签: 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);
        */
    }
});

1 个答案:

答案 0 :(得分:1)

解决方案是每次使用localStorage之前获取员工列表。所以尝试添加

var employeesArray = this.getEmployees();

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

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