Javascript 将值传递给构造函数时使其工作的问题

Javascript 将值传递给构造函数时使其工作的问题,javascript,angular,typescript,firebase,angular5,Javascript,Angular,Typescript,Firebase,Angular5,我有以下代码: import {Component, OnInit} from '@angular/core'; import {FirebaseListObservable, FirebaseObjectObservable, AngularFireDatabase} from 'angularfire2/database-deprecated'; import {Item} from '../shared/item'; import {ItemService} from '../shared

我有以下代码:

import {Component, OnInit} from '@angular/core';
import {FirebaseListObservable, FirebaseObjectObservable, AngularFireDatabase} from 'angularfire2/database-deprecated';
import {Item} from '../shared/item';
import {ItemService} from '../shared/item.service';

@Component({
  selector: 'app-items-list',
  templateUrl: './items-list.component.html',
  styleUrls: ['./items-list.component.scss']
})
export class ItemsListComponent implements OnInit {

  public items: FirebaseListObservable<any[]>;

  constructor(private itemSvc: ItemService) {
  }

  ngOnInit() {
    this.items = this.itemSvc.getItemsList({limitToLast: 10});
  }

  deleteItems() {
    this.itemSvc.deleteAll();
  }
}
HTML模板:

<div *ngFor="let item of items | async" >
  <app-item-detail [item]='item'></app-item-detail>
</div>
<!--<button (click)='deleteItems()'>Delete Entire List</button>-->

我是Angular的新手,如果我遗漏了什么,请告诉我,我会添加它。

请确保在app.module.ts文件中导入AngularFireDatabaseModule。因为您的服务正在使用AngularFire数据库

请参阅下面的链接了解更多信息。

从“angularfire2”导入{AngularFireModule};
//对于AngularFire数据库
从“angularfire2/database”导入{AngularFireDatabaseModule};
从“angularfire2/database”导入{AngularFireDatabase,FirebaseObjectObservable};
//对于AngularFireAuth
从'angularfire2/auth'导入{AngularFireAuthModule};
从'angularfire2/auth'导入{AngularFireAuth};
@NGD模块({
进口:[

AngularFireModule.initializeApp({如果我这样做,它将不会在
ngOnInit
deleteItems
中找到,对吗?你在模板html中使用异步管道吗?是的。我会附加代码你的构造函数完全正确。@NikolaLukic-注入的参数可以是私有的,它们应该是-仅在组件范围内使用。你注册了注入吗模块内的ed服务
提供者
部分?此处:
从“angularfire2/数据库”导入{AngularFireDatabase,FirebaseObjectObservable};
我收到此错误:
模块“…”没有导出成员“FirebaseObjectObservable”
。他们会再次移动它吗?@alex3wielki,不确定Alex。查看此链接。它可能会对您有所帮助。好的,我修复了引用错误,但您能解释一下这有什么帮助吗?我只是在导入新模块。
<div *ngFor="let item of items | async" >
  <app-item-detail [item]='item'></app-item-detail>
</div>
<!--<button (click)='deleteItems()'>Delete Entire List</button>-->
import {BrowserModule} from '@angular/platform-browser';
import {NgModule} from '@angular/core';
import {RouterModule} from '@angular/router';
import {rootRouterConfig} from './app.routes';
import {AngularFireModule} from 'angularfire2';
import {AngularFirestoreModule} from 'angularfire2/firestore';
import {AngularFireAuthModule} from 'angularfire2/auth';
import {environment} from '../environments/environment';
import {LoginComponent} from './login/login.component';
import {UserComponent} from './user/user.component';
import {RegisterComponent} from './register/register.component';
import {UserResolver} from './user/user.resolver';
import {AuthGuard} from './core/auth.guard';
import {AuthService} from './core/auth.service';
import {UserService} from './core/user.service';
import {ReactiveFormsModule} from '@angular/forms';

import {AppComponent} from './app.component';
import {HomeComponent} from './home/home.component';
import {AboutComponent} from './about/about.component';
import {ItemsListComponent} from './items/items-list/items-list.component';
import {ItemDetailComponent} from './items/item-detail/item-detail.component';
import {ItemFormexportComponent} from './items/item-formexport/item-formexport.component';
import {ItemFormComponent} from './items/item-form/item-form.component';

@NgModule({
  declarations: [
    AppComponent,
    LoginComponent,
    UserComponent,
    RegisterComponent,
    HomeComponent,
    AboutComponent,
    ItemsListComponent,
    ItemDetailComponent,
    ItemFormexportComponent,
    ItemFormComponent,
  ],
  imports: [
    BrowserModule,
    ReactiveFormsModule,
    RouterModule.forRoot(rootRouterConfig, {useHash: false}),
    AngularFireModule.initializeApp(environment.firebase),
    AngularFirestoreModule, // imports firebase/firestore, only needed for database features
    AngularFireAuthModule, // imports firebase/auth, only needed for auth features
  ],
  providers: [AuthService, UserService, UserResolver, AuthGuard],
  bootstrap: [AppComponent]
})
export class AppModule {
}
import { AngularFireModule } from 'angularfire2';
// for AngularFireDatabase
import { AngularFireDatabaseModule } from 'angularfire2/database';
import { AngularFireDatabase, FirebaseObjectObservable } from 'angularfire2/database';
// for AngularFireAuth
import { AngularFireAuthModule } from 'angularfire2/auth';
import { AngularFireAuth } from 'angularfire2/auth';

@NgModule({
  imports: [
    AngularFireModule.initializeApp({         <---- main module
      apiKey: ...,
      authDomain: '...',
      databaseURL: '...',
      storageBucket: '...',
      messagingSenderId: '...'
    }),                                       
    AngularFireDatabaseModule,                <---- for database 
    AngularFireAuthModule                     <---- for auth
  ]
})