首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WebStorm中的未解析变量,角4

WebStorm中的未解析变量,角4
EN

Stack Overflow用户
提问于 2018-02-18 17:17:03
回答 1查看 2.9K关注 0票数 1

因此,我有一个HTML,其中我引用了在构造函数中定义的服务,并且WebStorm向我发送了关于未解决变量的警告,尽管我指向的变量是通过导入定义和链接到服务的。

下面是模板:

代码语言:javascript
复制
<nav class="navbar navbar-default">
    <div class="navbar-header">
        <a routerLink="/" class="navbar-brand">Recipe Book</a>
    </div>
    <div class="collapse navbar-collapse">
        <ul class="nav navbar-nav">
            <li routerLinkActive="active"><a routerLink="/recipes">Recipies</a></li>
            <li routerLinkActive="active"><a routerLink="/shopping-list" >Shopping List</a></li>
        </ul>
        <ul class="nav navbar-nav navbar-right">
      <ng-template **[ngIf]="!authService.isAuthenticated()**">
        <li><a routerLink="/signup">Register</a></li>
        <li><a routerLink="/signin">LogIn</a></li>
      </ng-template>
            <li class="dropdown" app-dropdown>
                <a style="cursor: pointer" class="dropdown-toggle" role="button" *ngIf="authService.isAuthenticated()">Manage <span class="caret"></span></a>
                <ul class="dropdown-menu">
                    <li><a style="cursor: pointer" (click)="OnSave()">Save Data</a></li>
                    <li><a style="cursor: pointer" (click)="OnGet()">Fetch Data</a></li>
                </ul>
            </li>
        </ul>
    </div>
</nav>

以下是TypeScript代码:

代码语言:javascript
复制
import {Component} from '@angular/core';
import { Response } from '@angular/http';
import {RecipeDataService} from '../shared/RecipeData.service';
import {SignupUserService} from '../auth/signupUser.service';


@Component({
  selector: 'app-header',
  templateUrl: './header.component.html',
  styleUrls: ['./header.component.css']
})
export class HeaderComponent {
  constructor(private RecipeDataService: RecipeDataService,
              **private authService: SignupUserService**) { }
  OnSave()
  {
    this.RecipeDataService.OnSaveRecipe()
      .subscribe(
        (response: Response) =>
        {
          console.log(response);
        }
      );
  }
  OnGet()
  {
    this.RecipeDataService.OnGettingRecipe();
  }
}

以及服务内容:

代码语言:javascript
复制
import {Injectable} from '@angular/core';
import * as firebase from 'firebase';


@Injectable()

export class SignupUserService {
  token = '';
  signUpUser(email: string, password: string) {
    firebase.auth().createUserWithEmailAndPassword(email, password)
      .catch(
        error => console.log(error)
      );
  }
  signInUser(email: string, password: string)
  {
    firebase.auth().signInWithEmailAndPassword(email, password)
      .then(
        response => {
          firebase.auth().currentUser.getIdToken()
            .then(
              (token: string) => this.token = token
            );
        }
        )
      .catch (
        error => {console.log(error); }
      );
  }
  getToken() {
    firebase.auth().currentUser.getIdToken()
      .then(
        (token: string) => this.token = token
      );
    return this.token;
  }
  isAuthenticated(): 
  {
    return this.token != null;
  }
}
EN

回答 1

Stack Overflow用户

发布于 2021-12-22 17:35:00

老问题,但我相信原因是/是因为服务在构造函数中被声明为私有。改变这一点:

代码语言:javascript
复制
constructor(private RecipeDataService: RecipeDataService,
              **private authService: SignupUserService**) { }

到这个

代码语言:javascript
复制
constructor(private RecipeDataService: RecipeDataService,
              **public authService: SignupUserService**) { }

ga=2.241092739.1642698293.1640193643-1459887653.1634674430

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48854421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档