角4持久性存储使用则发挥作用

问题描述:

试图在承诺则函数使用角持久性,但总是说未定义角4持久性存储使用则发挥作用

import { Component, OnInit, Injectable } from '@angular/core'; 

import {Router} from "@angular/router"; 
import {PersistenceService, StorageType} from "angular-persistence"; 

export class ProcessingComponent implements OnInit { 

    myfunc: any; 

    constructor(private PersistenceService: PersistenceService){ 
    } 


    ngOnInit() { 

    this.myfunc = new myfunction(); 



    this.shaObj.generateIdentity().then(function (result, PersistenceService) { 
     console.log(PersistenceService.set('identityKey')); // getting undefined 
    }.bind(this.PersistenceService)); 

    } 

所以绑定服务似乎并不奏效,如何让外部范围'this'被传递给'.then'函数。

您应该使用this.injectableName而不是直接使用类名

console.log(PersistenceService.set('identityKey')); 

应该

console.log(this.PersistenceService.set('identityKey')); 

注:按照指引,以避免混淆使用cammelCase用于注入依赖性

constructor(private persistenceService: PersistenceService){} 

你也可以使用,而不是使用.bind(this)

this.shaObj.generateIdentity().then((result, PersistenceService) => { 
    //Assuming you changed dependency name to `persistenceService` 
    console.log(this.persistenceService.set('identityKey')); 
}); 
+1

冠军得主,鸡宴Arrow function的ES6美 – wesside