w/ Test Driven Development
import { Component, OnInit, Input } from '@angular/core';
@Component({
selector: 'helloworld',
template: `<div>Hello World! I am {{name}}</div><button (click)="letsGo"></button>`,
styles: [`
div {
color: 'red'
}
`]
})
export class HelloworldComponent implements OnInit {
constructor() { }
ngOnInit() {
}
@Input()
name: string;
@Export()
alertMe: EventEmitter<string> = new EventEmitter();
}
<div>
<helloworld [name]="'Ringo'" (alertMe)="showAlert($event)"></helloworld>
</div>import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable()
export class stuffService {
constructor(private _httpClient: HttpClient) { }
public GetStuff() {
return this._httpClient.get('stuff url');
}
}
A pattern we use to manage dependency in our code
import { Injectable } from '@angular/core';
import { HttpClient} from '@angular/common/http'
@Injectable()
export class UserService {
constructor(private http: HttpClient) {}
TalkToServer() {
return this.http.get('some url');
}
}
import { Component, OnInit } from "@angular/core";
import { UserService } from "../user.service";
@Component({
selector: "app-welcome-component",
templateUrl: "./welcome-component.component.html",
styleUrls: ["./welcome-component.component.css"]
})
export class WelcomeComponentComponent implements OnInit {
constructor(private _userService: UserService) {}
ngOnInit(): void {
_userService.TalktoServer()
}
}
Component =>
<= Service
Constructor initialized/injected UserService class to be used in component.
Constructor initialized/injected HttpClient class to be used in service.
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { UserService } from './user.service';
import { AppComponent } from './app.component';
import { WelcomeComponentComponent } from './welcome-component/welcome-component.component';
@NgModule({
declarations: [
AppComponent,
WelcomeComponentComponent,
],
imports: [
BrowserModule
],
providers: [UserService],
bootstrap: [AppComponent]
})
export class AppModule { }
Shopping Cart Checkout Page