Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Erro ao importar um modulo no modulo principal

Estou criando uma aplicacao sobre uma biblioteca aonde usuarios emprestam livros, no meu modulo de livros BookModule quero que tenha os components bookList.component e registerBook.component e ai meu AppModule importe o BookModule para usar os componentes dele. O problema e que quando faco isso da o seguinte erro "Can't bind to 'routerLink' since it isn't a known property of 'a'." Vou deixar o codigo dos componentes e modules aqui. bookList.component

import { Component, Inject } from "@angular/core";
import { Http } from "@angular/http";

@Component({
    moduleId: module.id,
    templateUrl: './bookList.component.html'
})

export class BookListComponent{
    books: Object[] = [];

    constructor(http: Http){
        http
        .get("http://localhost:52637/api/books")
        .map(response => {
            return response.json();
        })
        .subscribe(books => {
            this.books = books;
        }, error => console.log(error));
    }
}

registerBook.coponent

import { Component } from "@angular/core";

@Component({
    moduleId: module.id,
    templateUrl: './registerBook.component.html'
})

export class RegisterBookComponent{}

app.routes

import { RouterModule, Routes } from "@angular/router";
import { AppComponent } from "./app.component";
import { BookModule } from "./book/book.module";
import { RegisterBookComponent } from "./book/registerBook.component";
import { BookListComponent } from "./book/bookList.component";

const appRoutes: Routes = [
    { path: 'book', component: RegisterBookComponent },
    { path: 'books', component: BookListComponent }
];

export const routing = RouterModule.forRoot(appRoutes);

BookModule

import { NgModule } from "@angular/core";
import { BookListComponent } from "./bookList.component";
import { RegisterBookComponent } from "./registerBook.component";


@NgModule({
    declarations: [BookListComponent, RegisterBookComponent],
    exports: [BookListComponent, RegisterBookComponent]
})

export class BookModule{}

AppModule

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { BookModule } from "./book/book.module";
import { routing } from "./app.routes";
import { HttpModule } from "@angular/http";
import 'rxjs/add/operator/map';

@NgModule({
  imports: [
    BrowserModule, routing, HttpModule, BookModule
  ],
  declarations: [
    AppComponent
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }
3 respostas

Boa tarde! Se o seu BookModule depende de algo do módulo de roteamento, ele precisa importar o módulo de roteamento. Por isso o erro. Não é o fato de você importar o módulo de roteamento em AppModule que ele estará disponível para BookModule.

Boa tarde Flavio, importei aqui mas deu outro erro: "Can't bind to 'ngForOf' since it isn't a known property of 'tr'" preciso importar mais alguma coisa ?

solução!

Essa diretiva faz parte do BrowserModule, porém você só pode importá-lo em AppModule. Nesse caso, seu outro módulo deve importar CommonModule para que a diretiva esteja disponível para ele. Blz Lucas?