0

我开始在我的离子应用程序中使用秋田。

我有一个SessionModule, 我在其中声明一个SessionService, SessionQuery, ... 但我想在我的app.component.ts.

我试图在我的SessionModule

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { SessionQuery } from './store/session.query';
import { SessionService } from './store/session.service';



@NgModule({
  declarations: [
    SessionQuery,
    SessionService
  ],
  imports: [
    CommonModule
  ],
  exports:[
    SessionQuery,
    SessionService
  ]
})
export class SessionModule { }

我宣布它import在我的app.module.ts

并在我的 App.Component.ts 中使用它:

 public name$ = this.sessionQuery.selectName$;

  constructor(
    private platform: Platform,
    private splashScreen: SplashScreen,
    private statusBar: StatusBar,
    private sessionQuery: SessionQuery
  ) {
    this.initializeApp();
  }

但是当我运行它时,我得到了一些错误:

Error: Unexpected value 'SessionQuery' declared by the module 'SessionModule'. Please add a @Pipe/@Directive/@Component annotation.
Unexpected value 'SessionService' declared by the module 'SessionModule'. Please add a @Pipe/@Directive/@Component annotation.

我应该怎么办?是否必须仅在声明它的同一模块中使用查询?

4

1 回答 1

1

我找到了解决方案:

实际上,您不需要导入/导出任何东西,但是,您需要通过将其放置在每个类声明之前来标记 service+store+query 可注入:

@Injectable({
  providedIn: 'root'
})
于 2020-09-01T10:55:01.253 回答