使用TypeScript将持久数据保存到服务

时间:2016-01-26 00:52:39

标签: angularjs typescript

如何使用TypeScript将数据保存到服务?

如果我有这样的服务:

class MyService {
    persistentData: Object;

    constructor() {
        this.init();
    }

    private init = (): void => {
        this.persistentData = {};
    }

    public saveData = (data): Object {
        this.persistentData = data;
    }
}

我如何通过不同的路线保持数据的一致性?每次调用新路由时,都会再次实例化服务类,并将persistentData对象重置为空白。通常在常规JavaScript中你可以这样做:

angular
    .factory('myFactory', function() {
        var persistentData = {};

        return {
            setFormData: function(newData) {
                persistentData = newData;
            }
        }
    })

这很有效。我一定错过了什么,有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

如果要使用类,请将属性设置为静态,以便可以在类的所有实例之间共享它,并且每次创建新实例时都不要将其设置回{}

class MyService {
    static persistentData: any = {};

    saveData = (data: any) => {
        MyService.persistentData = data;
    }
}