Javascript 如何使用Angular factory持久化数据

Javascript 如何使用Angular factory持久化数据,javascript,angularjs,Javascript,Angularjs,我有一个表单,允许用户填写一些绑定到我控制器中名为person的ng模型的数据,person模型还存储图像数据。我想建立一个工厂,所以当用户离开页面时,我可以调用此方法来保存现有的表单数据和图像数据,当他们返回页面时,我可以从工厂获取它们,在表单提交后,我将调用工厂重置方法来清除它 我有一些东西,但不起作用,所以当我离开页面时,我调用storeData,当我回来时,我调用get,似乎在提交后,resetPersonService没有真正清除存储的数据,知道吗 .factory("PersonSe

我有一个表单,允许用户填写一些绑定到我控制器中名为person的ng模型的数据,person模型还存储图像数据。我想建立一个工厂,所以当用户离开页面时,我可以调用此方法来保存现有的表单数据和图像数据,当他们返回页面时,我可以从工厂获取它们,在表单提交后,我将调用工厂重置方法来清除它

我有一些东西,但不起作用,所以当我离开页面时,我调用storeData,当我回来时,我调用get,似乎在提交后,resetPersonService没有真正清除存储的数据,知道吗

.factory("PersonService", [function(){
            var newPerson = {};
            function storeData(person){
                if (person.image_data){
                    newPerson.image_data = person.image_data;
                }
                if (person.description)
                    newPerson.description = person.description;
                return newPerson;
            };

            function resetPersonService(){
                newPerson = {}; 
            };

            function get(){
                if (Object.keys(newPerson).length == 0){
                    return {};
                } else {
                    return newPerson;
                }
            };
            return {
                store: function(person){
                    return storeData(person);       
                },
                reset: function(){
                    resetPersonService();
                },
                get: function(){
                    return get();       
                }
            }
        }])

我在想,为什么不使用本地存储呢?你说的人返回页面是什么意思?在整个页面重新加载之后?你也可以发布控制器代码吗?我不担心页面重新加载,因为它是一个移动应用程序。所以我的意思是,当用户导航返回表单页面时,我认为Ved可能是对的,本地存储可能更简单。