Skip to content

Instantly share code, notes, and snippets.

@dherges
dherges / reactive-form.component.ts
Last active October 29, 2016 09:43
Angular2: reactive v. template-driven form
import { Component, OnInit } from '@angular/core'
import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms'
@Component({
selector: 'reactive-form',
template:
`
<form [formGroup]="myForm" (ngSubmit)="submit()">
<div class="form-group">
<label for="name">Name</label>
@dherges
dherges / nested-form.component.ts
Last active February 26, 2018 17:16
Angular2: reactive, nested form
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'
import { AbstractControl, FormArray, FormBuilder, FormControl,
FormGroup, Validators } from '@angular/forms'
@Component({
selector: 'nested-form',
template:
`
<form [formGroup]="myForm" (ngSubmit)="submit()">
<h4>Form</h4>
@dherges
dherges / item-form-control.component.ts
Last active November 6, 2016 11:43
Angular2: reactive, nested form
@Component({
selector: 'item-control',
template:
`
<div class="form-group row" [formGroup]="item">
<div class="col-sm-6">
<label [attr.for]="'name'+index">Name</label>
<input type="text" class="form-control"
[attr.id]="'name'+index" formControlName="name">
</div>
@dherges
dherges / items-form-array.component.ts
Created November 6, 2016 14:53
Angular2: reactive, nested form
@Component({
selector: 'items-array',
template:
`
<fieldset>
<h6>Items</h6>
<div *ngIf="itemsFormArray.hasError('minSum')">
You must buy a total sum of at least {{ itemsFormArray.getError('minSum') }}.
</div>
<item-control
@dherges
dherges / WebSecurityConfig.java
Last active December 1, 2016 08:24
spring-csrf-cookie-to-header-token
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf()
.csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
.and()
// other web security config follows ...
@dherges
dherges / my-providers.ts
Last active December 22, 2016 08:56
angular2 provider aliases
import { Component, NgModule, Provider, ClassProvider, FactoryProvider,
TypeProvider, ValueProvider } from '@angular/core';
import { MyThingDoer } from './my-thing-doer.service.ts';
@NgModule({
providers: [
MyThingDoer,
{ provide: MyThingDoer, useClass: MyThingDoer },
@dherges
dherges / component-integration-testing.ts
Last active May 12, 2017 07:23
Angular Testing Snippets
import { CommonModule } from '@angular/common';
import { Component, ElementRef, Renderer, ViewChild } from '@angular/core';
import { ComponentFixture, TestBed, TestComponentRenderer, async, inject } from '@angular/core/testing';
import { FooComponent } from './foo.component';
/** Test component hosting an IconComponent */
@Component({template: `<foo></foo>`})
class TestComponent {
@ViewChild(FooComponent)
@dherges
dherges / foo.guard.ts
Created April 7, 2017 05:54
ng-router-functional
@Injectable()
export class FooGuard implements CanActivate {
canActivate(
next: ActivatedRouteSnapshot,
state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {
return Observable.of(true);
}
@dherges
dherges / bar.guard.ts
Created April 7, 2017 05:54
ng-router-functional
export const BAR_GUARD_TOKEN = new InjectionToken<CanActivate>('bar.guard');
export function barGuard() {
return (next: ActivatedRouteSnapshot, state: RouterStateSnapshot):
Observable<boolean> | Promise<boolean> | boolean => {
return Observable.of(true);
}
}