I developed the Angular2 application using the old beta several months ago> I am currently moving to another new version (RC5 version) without bindings. This was until I received the following error:
zone.js:484 Unhandled Promise rejection: Template parse errors: More than one component: ProductComponent,OverlayComponent ("'noscroll': hideBody}">
I have a component component of a subcomponent that is included as a subcomponent of an application component. I include both of them in app.module.ts fle.
I am not sure what this error means, and cannot find support for this on the Internet. Here are the relevant files:
app.module.ts
import './rxjs-extensions'; import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { HttpModule } from '@angular/http'; import { AppComponent } from './app.component'; import { ProductComponent } from './components/product.component'; import { OverlayComponent } from './components/overlay-component'; import { ProductService } from './services/product.service'; import { CategoryService } from './services/category.service'; import { Breadcrumb} from "./directives/breadcrumb"; import { CategoryTree } from "./directives/category-tree"; import { Files } from "./directives/files"; import { Gallery } from "./directives/gallery"; import { OrderInformation } from "./directives/order-information"; @NgModule({ imports: [ BrowserModule, HttpModule ], declarations: [ AppComponent, ProductComponent, OverlayComponent, Breadcrumb, CategoryTree, Files, Gallery, OrderInformation ], providers: [ ProductService, CategoryService ], bootstrap: [ AppComponent ] }) export class AppModule { }
app.component.ts
import { Component } from '@angular/core'; import { Product } from "./classes/Product"; import { ProductService } from "./services/product.service"; import { Category } from "./classes/Category"; import { CategoryService } from "./services/category.service"; @Component({ selector: 'product-display', templateUrl: './app/views/main-view.html' }) export class AppComponent { title = `St. David Poultry Supplies`; menuLoaded = false; hideBody = false; productsLoaded = false; categories = []; selectedCategory = null; selectedProduct = Product; breadcrumbCategories = []; products = []; APIError = []; constructor( private _productService: ProductService, private _categoryService: CategoryService ) { } getProducts(categoryId = 0) { var payload = { order : 'asc', order_by : 'title', category_id : categoryId, resize : true, imgHeight : 200, imgWidth : 200 }; this._productService.getProducts(payload) .subscribe( products => {this.products = products}, error => {this.APIError = error}, () => {this.productsLoaded = true} ); } getCategories() { this.productsLoaded = false; this._categoryService.getCategories({ order : 'asc', order_by : 'name', parent_id : 0,
product.component.ts
import { Component, Input } from '@angular/core'; import { Product } from "../classes/Product"; import { Category } from "../classes/Category"; import { ProductService } from "../services/product.service"; @Component({ selector: 'product-view', templateUrl: './app/views/product-view.html' }) export class ProductComponent { @Input() products: Product[]; @Input() selectedCategory: Category; selectedProduct: Product; contentLoaded = false; title = "product viewer"; APIError = []; constructor( private _productService: ProductService ) { _productService.emitter.subscribe( product => { this.selectedProduct = product; this.contentLoaded = true } ); } selectProduct(product) { this.selectedProduct = product; this._productService.emitProduct(this.selectedProduct); } ngAfterContentInit() { this.contentLoaded = true; } private changeSelectedProduct(product, callback) { this.selectedProduct = product; } }
There were no problems with this, and I do not understand why this error occurs. Can someone point me in the right direction?
thanks