Using UnderscoreJs in Angular4 project
I recently introduced UnderscoreJs in a previous article : Introducing UnderscoreJs.
I’m a big fan of Angular 4 as well, and in this article i will show you how to use UnderscoreJs in Angular 4 (that uses Typescript).
I will show you also how to abstract UnderscoreJs in you Angular 4 in order to decouple as much as possible your from UnderscoreJs.
Step 1 :
Create your app and add Underscore as NPM package:
npm install underscore
Step 2 :
We want to abstract Underscore, let’s create a service :
ng g service services/Helper
This command will create the service directory and a prefilled file named helper.service.ts wich look like this :
import { Injectable } from '@angular/core';
@Injectable()
export class HelperService {
constructor() { }
}
Step 3 :
Import Underscore in your service then encapsulate it in custom function (example with each function) :
import { Injectable } from '@angular/core';
import { _ } from 'underscore';
@Injectable()
export class HelperService {
constructor() { }
public each(array, delegate) {
return _.each(array, delegate);
}
}
Step 4 :
Inject your service into your components like this :
import { Component, OnInit } from '@angular/core';
import { HelperService } from './services/helper.service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
constructor(private _helper: HelperService) { }
}
Step 5 :
To use each function define an array and call the service mwthod previously defined :
import { Component, OnInit } from '@angular/core';
import { HelperService } from './services/helper.service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
private _fruits = ["Apple", "Banana", "Grapefruit"];
constructor(private _helper: HelperService) { }
public ngOnInit() {
this._helper.each(this._fruits, console.log);
}
}
Step 6 :
Run your app with
ng serve
and look in the Chrome console for example :
Now you can encapsulate Underscore and many other libraries in your apps 😉
