Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t使用Angular 6 Generate Library后解析组件的所有参数_Angular - Fatal编程技术网

Can';t使用Angular 6 Generate Library后解析组件的所有参数

Can';t使用Angular 6 Generate Library后解析组件的所有参数,angular,Angular,我启动了一个新的Angular 6项目,并决定试用新的ng generate library命令 此库的“主要”功能是一项服务: import { Injectable } from '@angular/core'; import { HttpClient, HttpHeaders } from '@angular/common/http'; import { Observable } from 'rxjs'; import { AuthResponseModel } from "./

我启动了一个新的Angular 6项目,并决定试用新的
ng generate library
命令

此库的“主要”功能是一项服务:

    import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Observable } from 'rxjs';
import { AuthResponseModel } from  "./auth-response.model";
import { catchError, map } from 'rxjs/operators';
import { HttpErrorResponse } from '@angular/common/http';
import  decode from 'jwt-decode'
@Injectable()
export class AuthService {
  private authURL: string = "http://localhost:8090/oauth/token";
  private loginPath : string = "/login";
  isLoggedIn: boolean = false;
  redirectURL: string;
  public isRefreshing : boolean = false;

  constructor(private http: HttpClient) {
    this.redirectURL = "";
    this.isLoggedIn = this.getToken() != null;

  }
  login(user: string, password: string): Observable<boolean> {
    var data = new FormData();
    data.append("grant_type", "password");
    data.append("username", user);
    data.append("password ", password);

    const httpOptions = {
      headers: new HttpHeaders({
        'Authorization': 'Basic ' + window.btoa("web:secret")
      })
    };

    return this.http.post<AuthResponseModel>(this.authURL, data, httpOptions)
      .pipe(
        map((r: AuthResponseModel) => {
          if (r.access_token) {
            localStorage.setItem("access_token", r.access_token);
            localStorage.setItem("refresh_token", r.refresh_token);
            this.isLoggedIn = true;
            return true;
          } 
        }
        ));
  };

  refresh() : Observable<any> {
    var data = new FormData();
    this.isRefreshing = true;
    data.append("grant_type", "refresh_token");
    data.append("refresh_token", this.getRefreshToken());
    const httpOptions = {
      headers: new HttpHeaders({
        'Authorization': 'Basic ' + window.btoa("web:secret")
      })
    };

   return this.http.post<AuthResponseModel>(this.authURL, data, httpOptions)
    .pipe(
     map( r => {
       console.log("Old token" + this.getToken());
        localStorage.setItem("access_token", r.access_token);
        localStorage.setItem("refresh_token", r.refresh_token);
        this.isLoggedIn = true;
        this.isRefreshing = false;
        console.log("New token" + r.access_token);
        return r.access_token;
      })
    )

  }

  logout(): void {
    localStorage.removeItem("access_token");
    localStorage.removeItem("refresh_token");
    this.isLoggedIn = false;
  }

  checkTokenExpired(checkRefresh = false) : boolean {
    if(checkRefresh) {  return decode(this.getRefreshToken()).exp < (Date.now().valueOf() / 1000); }
    return decode(this.getToken()).exp < (Date.now().valueOf() / 1000);
  }
  getToken(): string {
    return localStorage.getItem("access_token");
  }

  getRefreshToken() : string {
    return localStorage.getItem('refresh_token');
  }


}
但是,每当我尝试将其注入
@组件时

    import { Component, OnInit } from '@angular/core';
import { AuthService } from 'auth-lib';
import { Router } from '@angular/router';
import {Injectable} from '@angular/core';

@Component({
  selector: 'app-login',
  templateUrl: './login.component.html',
  styleUrls: ['./login.component.scss']
})

export class LoginComponent implements OnInit {

  user : string;
  pass : string;

  constructor(private authService : AuthService, private router : Router) {
    this.user = "";
    this.pass = "";
   }
我收到以下消息:

[Angular]无法解析LoginComponent的所有参数

    import { Component, OnInit } from '@angular/core';
import { AuthService } from 'auth-lib';
import { Router } from '@angular/router';
import {Injectable} from '@angular/core';

@Component({
  selector: 'app-login',
  templateUrl: './login.component.html',
  styleUrls: ['./login.component.scss']
})

export class LoginComponent implements OnInit {

  user : string;
  pass : string;

  constructor(private authService : AuthService, private router : Router) {
    this.user = "";
    this.pass = "";
   }
该问题与插入
AuthService
(删除它会删除错误)有关。我提到了StackOverflow的几个问题(包括和);然而,解决方案似乎围绕着“桶”旋转,忘记了
@Injectable
注释。因此,我不知道如何将这些决议应用于我的问题

如有任何建议,将不胜感激

谢谢

编辑:


有趣的是,如果我将import语句从
import{AuthService}从'auth-lib'
更改为
import{AuthService}从'projects/auth-lib/src/public_-api'
,它确实可以工作,但这并不是真正想要的行为。

您是否在library.module.ts?@R.Richards的
providers
数组中注册了
AuthService
,老实说,我一开始没有注册。然而,不幸的是,添加它并重建库并没有解决这个问题。谢谢