我正在尝试学习 Angular 并且遇到了可能是一个非常简单的问题。
我已经编写了一个名为“PageSelectorComponent”的用于进行网格分页的子组件。该组件仅获取总记录数并计算和显示页面链接(此组件中不使用提供程序)。我已将此组件嵌入到另一个名为“TestComponent”的组件中。
PageSelectorComponent 和 Test Component 包含在我的 app.module.ts 文件的 delarations 部分中。
我的问题是我收到以下错误:
ERROR Error: Uncaught (in promise): Error: No provider for PageSelectorComponent!
如果我将 PageSelectorComponent 添加到 app.module.ts 的提供程序部分,一切正常,除了现在我得到了该组件的两个实例。这导致我的订阅不起作用。
我查看了 PageSelectorComponent 和 TestComponent 是如何声明的,但没有发现区别。
为什么应用程序抱怨没有将 PageSelectorComponent 列为提供者?
这是我的 app.modules.ts 的 NgMoudle 部分:
@NgModule({
declarations: [
AppComponent,
NavigationComponent,
HomeComponent,
PageSelectorComponent,
TestComponent,
],
imports: [
BrowserModule,
RoutingModule,
],
providers: [
PageSelectorComponent // App complains if I leave this out but now I get 2 instances of the component.
],
bootstrap: [AppComponent]
})
这是 PageSelectorComponent 的定义:
@Component({
moduleId: module.id,
selector: 'app-page-selector',
templateUrl: './page-selector.component.html',
styleUrls: ['./page-selector.component.css'],
})
export class PageSelectorComponent {
// member variables declared here
.
.
private static instanceNum: number = 0; // TOOD: debugging
constructor() {
PageSelectorComponent.instanceNum += 1;
console.log(`page-selector instance number ${PageSelectorComponent.instanceNum}`)
this.subject = new Subject();
}
就像我说的,我认为我在这里错过了一些非常基本的 Angular 东西。关于在哪里看的任何建议?
提前致谢!