如何在我的角度2应用程序中导入角度2本地存储(angular-cli)

时间:2016-12-22 06:11:46

标签: angular typescript node-modules

如何在我的角度2应用程序中导入angular-2-local-storage,我正在使用angular-cli生成器。 Floder结构

enter image description here

node_module文件夹中的

angular-2-local-storage。我想在我的组件中使用它。我试过这段代码

import { LocalStorageService } from '../../../node_modules/angular-2-local-storage';

constructor(
        private localStorageService: LocalStorageService
    ) { }

但是收到此错误

enter image description here

1 个答案:

答案 0 :(得分:0)

对于初学者来说store.js是一个狂热的图书馆,如果这是你想去的路线。它支持typescript,如果你使用angular-cli和npm,它很容易设置。

DefinitelyType是一个类型脚本定义文件的集合,可以添加到项目中,为外部库提供强大的类型,否则可能会对构建内容产生挑战。

添加后,angular cli将自动包含项目中的依赖项。 (位于带有@prefix的npm_modules中)要使用这些库,只需导入一个引用,你基本上就可以了。在某些方面,它们可以像角度2库一样使用。

路由2对于本地存储也相当简单,下面是沙盒应用程序的片段。这样就可以在服务中使用localStorage。

import { Injectable } from '@angular/core';
import { Http, Headers } from '@angular/http';

@Injectable()
export class UserService {
  private loggedIn = false;

  constructor(private http: Http) {
    this.loggedIn = !!localStorage.getItem('auth_token');
  }

  login(email, password) {
    let headers = new Headers();
    headers.append('Content-Type', 'application/json');

    let self = this;
    return new Promise(function (resolve, reject) {
      if (email === 'test@test.com' && password === 'test') {
        localStorage.setItem('auth_token', 'xyz');
        self.loggedIn = true;
        resolve(true);
      } else {
        resolve(false);
      }
    });
  }

  setPassword(password) {
    let headers = new Headers();
    headers.append('Content-Type', 'application/json');

    let self = this;
    return new Promise(function (resolve, reject) {
      resolve(true);
    });
  }

  logout() {
    localStorage.removeItem('auth_token');
    this.loggedIn = false;
  }

  isLoggedIn() {
    return this.loggedIn;
  }
}