Buenas noches, estoy usando la libreria angular-datatables para crear un index, dentro del componente configuro la logica respectiva y al...

Darwin Gómez Santamaría

Darwin Gómez Santamaría

Pregunta
studenthace 5 años

Buenas noches, estoy usando la libreria angular-datatables para crear un index, dentro del componente configuro la logica respectiva y allí mismo renderizo los botones que me serviran como las acciones que ejecutara el usuario, pero tengo un problema, intento acceder a la url a la cual le envio el id del registro que deseo modificar, cuando yo doy click efectivamente la url cambia pero no me muestra el componente. la verdad no he dado con la falla, agradezco cualquier recomendación.

users.component.ts

ngOnInit() { const that = this; this.dtOptions = { pagingType: 'full_numbers', pageLength: 25, serverSide: true, processing: true, responsive: true, language: { url: '../../assets/lang/datatable-spanish.json' }, ajax: (dataTablesParameters: any, callback) => { that.service.getUsers(dataTablesParameters) .subscribe((resp: any) => { that.users = resp.data; callback({ recordsTotal: resp.data.total, recordsFiltered: resp.data.total, data: resp.data.data, }); }); }, columns: [ { data: 'nombre' }, { data: 'apellido' }, { data: 'email' }, { data: 'perfil' }, { data: '_id', render: (data) => ` <a class="btn-option"> <img class="edit" src="../../../assets/icons/edit.svg" data-id="${data}" width="20px" uk-tooltip="title:Editar; pos: top; delay: 200"> </a> <a class="btn-option"> <img class="resend" src="../../../assets/icons/mail.svg" data-id="${data}" width="30px" uk-tooltip="title:Reenviar correo activación; pos: top; delay: 200"> </a> <a class="btn-option"> <img class="resend" src="../../../assets/icons/trash.svg" data-id="${data}" width="20px" uk-tooltip="title:Eliminar; pos: top; delay: 200"> </a> ` } ] }; }
ngAfterViewInit(): void { this.renderer.listen('document', 'click', (event) => { if (event.target.classList.contains('edit')) { this.router.navigate(['users/edit/' + event.target.dataset.id]); } }); }

users-routing.module.ts

import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; import { EditComponent } from './edit/edit.component'; import { UsersComponent } from './users.component'; const routes: Routes = [ { path: '', component: UsersComponent, children: [ { path: 'edit/:id', component: EditComponent }, ] } ]; @NgModule({ imports: [RouterModule.forChild(routes)], exports: [RouterModule] }) export class UsersRoutingModule { }

app-routing.module.ts

import { NgModule } from '@angular/core'; import { Routes, RouterModule, PreloadAllModules } from '@angular/router'; import { LayoutComponent } from './components/layout/layout.component'; import { DashboardComponent } from './components/dashboard/dashboard.component'; import { OwnershipsComponent } from './components/ownerships/ownerships.component'; const routes: Routes = [ { path: '', component: LayoutComponent, children: [ { path: '', redirectTo: 'inicio', pathMatch: 'full' }, { path: 'inicio', component: DashboardComponent }, { path: 'users', loadChildren: () => import('./components/users/users.module').then( m => m.UsersModule) }, { path: 'ownerships', component: OwnershipsComponent, children: [] } ] } ]; @NgModule({ imports: [RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })], exports: [RouterModule] }) export class AppRoutingModule { }
1 respuestas
para escribir tu comentario
    Nicolas Molina

    Nicolas Molina

    teacherhace 5 años

    Hola, genial que estes ya implementado todo lo aprendido, felicidades por eso.

    Una pregunta el componente

    UsersComponent
    es donde esta implementado el datatable?

    No te da ningún error de consola? es decir normalmente cuando hay errores de ruta en consola sale un error de

    no Match
    .

    Si puedes pasar un repo sería genial.

Curso de Angular [Empieza Gratis]

Curso de Angular [Empieza Gratis]

Entiende los conceptos fundamentales de Angular 8. Conoce la arquitectura de este Framework para que programes aplicaciones web con sus mejores prácticas. Conecta tus aplicaciones con una API para obtener datos de un sistema de Backend. Crea una tienda en línea y publícala en Internet con Firebase.

Curso de Angular [Empieza Gratis]
Curso de Angular [Empieza Gratis]

Curso de Angular [Empieza Gratis]

Entiende los conceptos fundamentales de Angular 8. Conoce la arquitectura de este Framework para que programes aplicaciones web con sus mejores prácticas. Conecta tus aplicaciones con una API para obtener datos de un sistema de Backend. Crea una tienda en línea y publícala en Internet con Firebase.