2017-05-26 69 views
-1

通过下面的代码,我得到了键和值对,我正在登录控制台。不过,我希望能够将这些数据存储在会话存储中。在角2中的会话存储中存储键值

Object.keys(response).forEach(function (key) { 
    console.log(key,response[key]); 
}); 

我试过用这个Github的例子。使用下面的代码,当我尝试插入一个虚拟数据时它工作正常。

ngOnInit():void 
{ 
    this._propLoadService.getPropertyMap().subscribe(response=> { 
    this.loadPropValue=response; 
    this._storage.store('key','value'); 
    }); 
} 

但是当我使用下面的代码增强for循环来存储每个键值对从JSON响应,我收到错误。

ngOnInit():void 
{ 
    this._propLoadService.getPropertyMap().subscribe(response=> { 
    this.loadPropValue=response; 
    Object.keys(response).forEach(function (key) { 
     this._storage.store(key,response[key]); 
    }); 
    }); 
} 

,我正的错误是

ERROR TypeError: Cannot read property '_storage' of undefined 
at /main.bundle.js:449:21 
at Array.forEach (native) 
at SafeSubscriber._next (/main.bundle.js:448:35) 
at SafeSubscriber.__tryOrUnsub 
(/vendor.bundle.js:16394:16) 
at SafeSubscriber.next (/vendor.bundle.js:16343:22) 
at Subscriber._next (/vendor.bundle.js:16283:26) 
at Subscriber.next (/vendor.bundle.js:16247:18) 
at CatchSubscriber.Subscriber._next 
(/vendor.bundle.js:16283:26) 
at CatchSubscriber.Subscriber.next 
(/vendor.bundle.js:16247:18) 
    at MapSubscriber._next (/vendor.bundle.js:29484:26) 
    defaultErrorLogger @ core.es5.js:1084.. 

任何人可以帮助我一下,需要做什么来指出。

回答

0

您是否尝试过使用FAT Arrow功能像.forEach((key) => {...}

Object.keys(response).forEach((key) => { 
    this._storage.store(key,response[key]); 
}); 

我不知道,如果是thisthis._storage的引用变量,如果它指向的匿名函数的局部变量,当你”重新使用.forEach(function(key) {...}

+0

嗨马科比,这为我工作。非常感谢。 – Lkyashu

+0

没问题我的朋友。如果您将我的答案标记为解决方案,如果它对您有帮助,会很好:) –