如何使用Angular工厂来保存数据

时间:2014-12-17 04:35:53

标签: javascript angularjs

我有一个表单,允许用户在我的控制器中填写一些绑定到名为“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();       
                }
            }
        }])

0 个答案:

没有答案