Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [Angular] Problemi con routing

    ciao!

    ho un problema sul routing in angular che non riesco a capire.
    questo il mio app.module.ts:
    codice:
    @NgModule({
      declarations: [
        AppComponent,
        DialogBookComponent,
        ConfirmDialogComponent,
        AutoriComponent,
        MenuComponent
      ],
      imports: [
        BrowserModule,
        BrowserAnimationsModule,
        HttpClientModule,
        MatToolbarModule,
        MatIconModule,
        MatButtonModule,
        MatTableModule,
        MatCardModule,
        MatPaginatorModule,
        MatSortModule,
        MatMenuModule,
        MatDialogModule,
        MatFormFieldModule,
        MatInputModule,
        ReactiveFormsModule,
        MatDividerModule,
        MatSelectModule,
        ToastrModule.forRoot({
          positionClass: 'toast-top-center',
          preventDuplicates: true,
        }),
        MatGridListModule,
        RouterModule.forRoot(
          [
            {
              path: '',
              component: AppComponent,
              children: [
                {path: 'autori', component: AutoriComponent},
              ]
            }
          ]
        )
      ],
      providers: [
        {provide: LocationStrategy, useClass: HashLocationStrategy},
        {provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: {appearance: 'fill'}}
      ],
      bootstrap: [AppComponent]
    })
    
    export class AppModule {
    }
    poi nella mia topbar ho messo questo:
    codice:
    <a [routerLink]="['/autori']" mat-menu-item>Autori</a>
    quando ci clicco vedo che l'url cambia da http://localhost:4200/#/ a http://localhost:4200/#/autori.
    ma nella pagina rimane sempre lo stesso contenuto.
    secondo voi dove può essere il problema??

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Quote Originariamente inviata da fermat Visualizza il messaggio
    quando ci clicco vedo che l'url cambia da http://localhost:4200/#/ a http://localhost:4200/#/autori.
    ma nella pagina rimane sempre lo stesso contenuto.
    secondo voi dove può essere il problema??
    Sicuro che non ci sia scritto nulla nel log della console?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Quote Originariamente inviata da alka Visualizza il messaggio
    Sicuro che non ci sia scritto nulla nel log della console?
    ciao!

    ho fatto parecchie modifiche ed ha funzionato.
    app-routing.module.ts:
    codice:
    import {RouterModule} from '@angular/router';
    import {NgModule} from '@angular/core';
    import {AutoriComponent} from './autori/autori.component';
    import {HomeComponent} from './home/home.component';
    
    @NgModule({
      imports: [
        RouterModule.forRoot([
            {path: '', component: HomeComponent},
            {path: 'autori', component: AutoriComponent},
          ]
        )
      ],
      exports: [RouterModule]
    })
    
    export class AppRoutingModule {
    }
    app.module.ts:
    codice:
    @NgModule({
      declarations: [
        AppComponent,
        DialogBookComponent,
        ConfirmDialogComponent,
        AutoriComponent,
        MenuComponent,
        HomeComponent
      ],
      imports: [
        BrowserModule,
        BrowserAnimationsModule,
        HttpClientModule,
        MatToolbarModule,
        MatIconModule,
        MatButtonModule,
        MatTableModule,
        MatCardModule,
        MatPaginatorModule,
        MatSortModule,
        MatMenuModule,
        MatDialogModule,
        MatFormFieldModule,
        MatInputModule,
        ReactiveFormsModule,
        MatDividerModule,
        MatSelectModule,
        ToastrModule.forRoot({
          positionClass: 'toast-top-center',
          preventDuplicates: true,
        }),
        MatGridListModule,
        AppRoutingModule,
      ],
      providers: [
        {provide: LocationStrategy, useClass: HashLocationStrategy},
        {provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: {appearance: 'fill'}}
      ],
      bootstrap: [AppComponent]
    })
    
    export class AppModule {
    }
    ho creato un componente ad hoc come route principale.
    e nell'app.component.html:
    codice:
    <router-outlet></router-outlet>
    infine il router link:
    codice:
    <a [routerLink]="['/autori']" mat-menu-item>Autori</a>
    così funziona tutto!

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Quote Originariamente inviata da fermat Visualizza il messaggio
    ciao!
    ho creato un componente ad hoc come route principale.
    e nell'app.component.html:
    codice:
    <router-outlet></router-outlet>
    infine il router link:
    codice:
    <a [routerLink]="['/autori']" mat-menu-item>Autori</a>
    così funziona tutto!
    Scusa, questi davo per scontati che tu li avessi già fatti, in quanto sono imprescindibili per implementare il routing nel modo corretto.
    Se non c'erano questi componenti, sfido che non funzionasse...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    è che ultimamente ho sempre usato template creati con primeng, dove <router-outlet> era già presente.
    quindi non ci ho pensato.

    ma a parte quello, ho dovuto cmq fare altre modifiche.
    tipo creare un componente ad hoc come "root", sennò aveva cmq comportamenti strani.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.