角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'));
});
冠军得主,鸡宴
Arrow function
的ES6美 – wesside