2016-05-24 57 views
1

我在使用打字稿和角度的单页应用程序。 我使用ng.Resource从的WebAPI获取数据如何使用使用打字稿的角度本地存储

productResource.get({ userName: login.userName, password: login.password }, (data: Models.ICompany) => { 
    this.localStorageService.set<Models.ICompany>("CompanyData", data); 
}); 

我添加角本地storage.d.ts文件,也安装angularlocalstorage

但是当我尝试存储的承诺从webapi返回我得到一个错误“无法获取未定义或空引用的propery集”。另外我无法在angular-local-storage.js文件中找到'set'/'get'方法。我猜错误正在产生,因为'set'/'get'方法在.js文件中是未知的。

请帮我解决这个问题。

或者有什么最好的方式来存储在浏览器中使用角度的数据。

+0

错误提示'this.localStorageService'未定义。你确定你已经创建了它吗? – iberbeu

+0

感谢您的回复。我在类localStorageService的开头添加了以下内容:ng.local.storage.ILocalStorageService; var main = angular.module(“CarConsulting”, [“ngRoute”, “common.services”,“LocalStorageModule”]); –

+0

你需要注入localstorage以及'static $ inject = ['LocalStorageModule']'或者调用它,然后在构造函数'constructor(private localStorageModule'){}'中调用。没有看到你的代码,虽然不是很容易 – iberbeu

回答

2

我在使用打字稿中的localstorage时也遇到了一些麻烦。我所做的是: 我在github上找到了一个js文件,它有一些访问localstore的功能。我在Typescript中编写了相同的js文件并使用该文件。这有一个cookie后备。

这里是链接到我的版本:

https://gist.github.com/davidcarm/eedb29feb25a7130d0f9ac01a7d11d3f(滚动到底)

一旦你导入的SimpleStore.ts文件你只需要使用这些功能:

constructor(private simpleStore: SimpleStore){} 
// to save a value 
simpleStore.store('value_name',value); 
// to access a value 
simpleStore.store('value_name',undefined); 
// to delete a value 
simpleStore.store('value_name',null); 

干杯!