Templates
@Component({
template: ‘…’,
// or
templateUrl: ‘app/template.template.html’
})
import { Component } from '@angular/core';
@Component({
selector: 'course',
template: '{{ title }}'
})
export class CourseComponent {
title: string = "Java J2EE";
}
Template variables ( reference to native DOM )
@Component({
selector: 'course',
template: `
<input type="text" #name>
<p>{{ name }}</p>
<button (click)="passValue(name.value)">Pass Value</button>
`
})
export class CourseComponent{
passValue(val){
console.log(val);
}
}
Template variable - Directive
Because directive enhance component, we can create template variable for origional component or enhanced one ( component + directive )
@Component({
selector: 'my-app',
template: `
<form #myForm="ngForm" (ngSubmit)="submitForm(myForm)">
<input type="text" id="name" name="name" ngModel>
</form>
<div>{{ values | json }}</div>
`
})
export Class MyComponent{
values: any;
submitForm(form: NgForm){
this.values = form.value;
}
}
Template Projection
Ability to pass HTML to a child component and have it rendered their
Was called transclusion in Angular 1
Where to render passed component placeholder is
<ng-content>
@Component({
selector: 'my-app',
template: `
<my-child>
<p>Lorem ipsum dolor sit amet.</p>
<p>Lorem ipsum dolor sit amet.</p>
</my-child>
`
})
// child component
@Component({
selector: 'my-child',
template: `
<h2>In child component</h2>
<ng-content></ng-content>
`
})
export class ChildComponent{
}
Last updated
Was this helpful?