2016-05-24 55 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); 

乾杯!