Hello to all, welcome to therichpost.com. In this post, I will tell you, How to show data in Angular 7 datatables with laravel Rest API?
Guys, you can find many posts related to Laravel 5.7 and Angular 7 on my blog.
Here is the workingpicture:
Here are the working and tested code need to follow:
1. Very first, you need to run below commands to set Angular 7 application:
Install latest Angular 7 version on your machine:
$ npm install -g @angular/cli $ ng new angulardatatables //Install Angular Project $ cd angulardatatables // Go to project folder $ ng serve //Run Project http://localhost:4200/ //Run On local server
2. After it run below commands to add datatable and bootstrap into Angular Application:
This will install fresh datatables, bootstrap versions also:
npm install jquery --save npm install datatables.net --save npm install datatables.net-dt --save npm install angular-datatables --save npm install @types/jquery --save-dev npm install @types/datatables.net --save-dev $ npm install ngx-bootstrap bootstrap --save
3. Now add below code into your angular.json file:
Will add bootstrap and datatables libraries on your project:
... "styles": [ "src/styles.css", "node_modules/datatables.net-dt/css/jquery.dataTables.css", "node_modules/bootstrap/dist/css/bootstrap.min.css", ], "scripts": [ "node_modules/jquery/dist/jquery.js", "node_modules/datatables.net/js/jquery.dataTables.js", "node_modules/bootstrap/dist/js/bootstrap.js", ] ...
4. Now add below code into your app.module.ts file:
Add datatables and httpclient api modules:
import { NgModule } from '@angular/core'; import { AppComponent } from './app.component'; import { HttpClientModule } from '@angular/common/http'; import {DataTablesModule} from 'angular-datatables'; @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, HttpClientModule, DataTablesModule ], providers: [], bootstrap: [AppComponent] }) export class AppModule { }
5. Now add below code into your app.component.ts file:
Execute datatable and get data for datatables from laravel rest api:
import { Component } from '@angular/core'; import { HttpClient } from '@angular/common/http'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { data = []; title = 'angulardatatables'; constructor(private http: HttpClient) { this.http.get('http://localhost/blog/public/api/sample-restful-apis').subscribe(data => { this.data.push(data); //console.log(this.data); }, error => console.error(error)); } dtOptions: DataTables.Settings = {}; ngOnInit() { this.dtOptions = { pagingType: 'full_numbers', pageLength: 5, processing: true }; } }
6. Now add below code into your app.component.html file:
Will give final output:
<table class="table table-striped table-bordered table-sm row-border hover" datatable [dtOptions]="dtOptions"> <thead> <tr> <th>Name</th> <th>Domain</th> </tr> </thead> <tbody> <tr *ngFor="let group of data"> <td>{{group.name}}</td> <td>{{group.domain}}</td> </tr> </tbody> </table>
7. Now you need to add below code into your laravel project routes/api.php file:
This laravel api file code which Sends data to Angular 7 app:
Route::get('sample-restful-apis', function() { return response()->json([ 'name' => 'test', 'domain' => 'test.com' ]); });
If you have any query related to this post, then please do comment below or ask question.
Notes: My main purpose is, share the code and help other and feel happy. I know my blog users are from around the world but I am an Indian my english is simple and some guys make fun of my english but anyways just enjoy the code.
Happy Coding,
Thank you,
Jatt Nation,
TheRichPost
2 comments
thank u! it was so helpful 🙂
Thank you and happy, it helped you..