首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将Angular service1导入service2

将Angular service1导入service2
EN

Stack Overflow用户
提问于 2018-08-01 00:21:00
回答 1查看 32关注 0票数 1

这是一个Angular 6和Firestore应用程序。我正在尝试将service1导入到service2中,但得到了以下错误。

compiler.js Uncaught Error: Can't resolve all parameters for Service1

我读过这篇Medium article和这篇stackoverflow帖子,它们都没有提供洞察力。

这是我的代码。

首先,我在app.module.ts中将这两个服务作为提供者导入并列出

代码语言:javascript
运行
复制
#### app.module.ts ####

import { AuthenticationService } from './authentication.service';
import { UserService } from './user.service';

@NgModule({
  ...
  providers: [
    AuthenticationService,
    UserService
  ]
  ...
})

service1 AuthenticationService是这样的

代码语言:javascript
运行
复制
#### authentication.service.ts ####

import { Injectable } from '@angular/core';
import { AngularFireAuth } from 'angularfire2/auth';
import * as firebase from 'firebase/app';
import { Router } from '@angular/router';
import { Observable } from 'rxjs';
import { User } from './models/user.model';
import { UserService } from './user.service';

@Injectable({
  providedIn: 'root'
})

export class AuthenticationService {
  user: Observable<firebase.User>;

  constructor(private afAuth: AngularFireAuth,
              private router: Router,
              public userService: UserService ) {
                this.user = afAuth.authState;
              }
}

当我将service1 AuthenticationService添加到service2 UserService中的构造函数时,我得到上面列出的编译器错误。

代码语言:javascript
运行
复制
#### user.service.ts ####

import { Injectable } from '@angular/core';
import * as firebase from 'firebase/app';
import {
  AngularFirestore,
  AngularFirestoreDocument,
  AngularFirestoreCollection
} from 'angularfire2/firestore';
import { Observable } from 'rxjs';
import { User } from './models/user.model';
import { AuthenticationService } from './authentication.service';

@Injectable({
  providedIn: 'root',
})

export class UserService {
  usersCollection: AngularFirestoreCollection<User>;
  users: Observable<User[]>;
  username;

  constructor(private afs: AngularFirestore, 
              private authserv: AuthenticationService) {
    this.usersCollection = this.afs.collection('users');
    this.users = this.usersCollection.valueChanges();

    this.authserv.user.subscribe(user => {
      if (user != null) {
        console.log('Id is: ' + user.uid);
      }
    });
  }
}

我是不是遗漏了什么代码?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-08-01 00:40:22

正如上面的注释所指出的,不可能同时使用

  • 使用service2构造service1作为依赖项
  • ,使用service1构造service2作为依赖项

你可以选择其中之一,但不能两个都做。

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

https://stackoverflow.com/questions/51617921

复制
相关文章

相似问题

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