Component interaction
Component interaction
This cookbook contains recipes for common component communication scenarios in which two or more components share information.
See the .
Pass data from parent to child with input binding
HeroChildComponent
has two input properties, typically adorned with @Input() decorator.
import { Component, Input } from '@angular/core';
import { Hero } from './hero';
@Component({
selector: 'app-hero-child',
template: `
<h3>{{hero.name}} says:</h3>
<p>I, {{hero.name}}, am at your service, {{masterName}}.</p>
`
})
export class HeroChildComponent {
@Input() hero: Hero;
@Input('master') masterName: string; // tslint:disable-line: no-input-rename
}
The second @Input
aliases the child component property name masterName
as 'master'
.
The HeroParentComponent
nests the child HeroChildComponent
inside an *ngFor
repeater, binding its master
string property to the child's master
alias, and each iteration's hero
instance to the child's hero
property.
import { Component } from '@angular/core';
import { HEROES } from './hero';
@Component({
selector: 'app-hero-parent',
template: `
<h2>{{master}} controls {{heroes.length}} heroes</h2>
<app-hero-child *ngFor="let hero of heroes"
[hero]="hero"
[master]="master">
</app-hero-child>
`
})
export class HeroParentComponent {
heroes = HEROES;
master = 'Master';
}
The running application displays three heroes:
[[../File:data:image/png;base64,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|272x267px|Parent-to-child]]
Test it
E2E test that all children were instantiated and displayed as expected:
// ...
const heroNames = ['Dr IQ', 'Magneta', 'Bombasto'];
const masterName = 'Master';
it('should pass properties to children properly', async () => {
const parent = element(by.tagName('app-hero-parent'));
const heroes = parent.all(by.tagName('app-hero-child'));
for (let i = 0; i < heroNames.length; i++) {
const childTitle = await heroes.get(i).element(by.tagName('h3')).getText();
const childDetail = await heroes.get(i).element(by.tagName('p')).getText();
expect(childTitle).toEqual(heroNames[i] + ' says:');
expect(childDetail).toContain(masterName);
}
});
// ...
Intercept input property changes with a setter
Use an input property setter to intercept and act upon a value from the parent.
The setter of the name
input property in the child NameChildComponent
trims the whitespace from a name and replaces an empty value with default text.
import { Component, Input } from '@angular/core';
@Component({
selector: 'app-name-child',
template: '<h3>"{{name}}"</h3>'
})
export class NameChildComponent {
@Input()
get name(): string { return this._name; }
set name(name: string) {
this._name = (name && name.trim()) || '<no name set>';
}
private _name = '';
}
Here's the NameParentComponent
demonstrating name variations including a name with all spaces:
import { Component } from '@angular/core';
@Component({
selector: 'app-name-parent',
template: `
<h2>Master controls {{names.length}} names</h2>
<app-name-child *ngFor="let name of names" [name]="name"></app-name-child>
`
})
export class NameParentComponent {
// Displays 'Dr IQ', '<no name set>', 'Bombasto'
names = ['Dr IQ', ' ', ' Bombasto '];
}
[[../File:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUwAAAC+CAMAAABpncbLAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAACfUExURf///+/v7/b29jMzMywsLPLy8tzc3P7//gAAAPn5+To6OlJSUoaGhq2trSAgIOTk5Pz8/EFBQampqZeXl3x8fL+/v+jo6ODg4I2Njevr60VFRWFhYQsLC6KiorKysiUlJcbGxkhISHZ2dtLS0hsbG8rKymdnZ7W1tVxcXBUVFc7Ozrm5uWxsbExMTHFxcYGBgZGRkdbW1lhYWJ2dncPDw94xXCwAABfcSURBVHja7JjZtqq6EoYDCRACAsEGDAjS2KBi//7PdioBXTo758VeZ58xjrmZRkxS9aWq/mIi9B7v8R7v8R7v8R7v8R7v8R7v8f86LBjfT79d9VdMeWXoi6e/M/1/7wL+6yh/u/hfxGmhqnQPrtHbYKGpezgc9dcm+fZfYOn/dKw9LGc/LJ6E4Mfw9G/StNCYYkLnd5hXipvW+NkiCxkzNvmHrYZ7HAr7h8e6Q/fWt0+vzKOUeulvAuHvwbymjlMPbxZYLnF4Yrwy6Eid6T9u9IgmP8Jc5iPru4cbWmB3O2sFPf67kdkK7mgKDUQHFwXrYVr9eFCmbmKhmDh9ZD795sOKD8s+znrJuG86ImsbWfevn3cHmEk9+nzkDTQnW/gUnYvUfLjl5yM+mXh//KOdX5z4E8yWbnqY26YQbC1hWs+1/aHAw8djDfgfv7Z+pQufVMJ63PTQJB92ejq0h/mF0ljoRL1YyeLKI4NnY76ZWF8rqvWjmlmvYfLYqY+9ty7dLYmMTCkH2wGMhSpCFgqqbDDINnI2WZS43S58+cC4wm+2U3WQvblO9SzM/IftrRMsW5mo28TerO4zZF5PSJNnVJKVP99hZz6fouhaoUUYLmSU6gv5e1/9voMJH0z4bnDVnrJ8X1xRAB8WhAz/+GxXVx9Fq0GYRb0BnVOdG7D71UCV9BHKizFWJ3UxhUzp7OkWUpMtTLeTl70bGqckO3hrTd3+BLPZyFNprsWshpKe5mtTop2UBGaUJKCXAyoEJ3QGv5o78mtPZGp1S2cxbWgxud+wX+KU0gYPlfWnkqhZrE5z6WFTNDCvoZtAIS0Ez+kYDekyo2lNVwgtlrncnV30W2TCfRzljpS04ydHdFsl7cAj2b3+I6Olw5U0sCGhYqkNO6dIIouBSegilFN6MKqz/MDmHQa3O+PQOTLAUtxyNrNfCfO4Sa9jmm7ULlvqmHsZmUjfU8bcY0kEWetwb/sar49HB2M+QWPH4WJ5hiK1pTxP4j3hNJQF9ywEI4Qe7t5EnDDuuozTOADy0DgUbol5s4S4sqDwMir2LXHgXtBWbrpzNuhCWoZrkkZoRRlxXLn7yL5H5pCyNh4uiehL01MOLgre+A8w16IlqbNnrKULeR+73qkil1pnCrH2vN0Ot83Ioe2eca6alMk5Z+zgFphAMQsgd2E2hEV08AuYY5/nQzU70KOm0hx2KPa+benVufAWCFWUXTTLmroYsNkGaL5p6MisW5wZgb4QBYHcnQIOlkWz+d2dEeEj3w7MxKkXaAJPhxNbPyWiiRXMglwmxjTMi1ZDulHm56lho4vXEte8XpCZtjjUbH3htHCoghkgn7CDHyAjJLX7oehtZm7OxfixgztzgVea4buYyagep0WpnHKKHJwyeYHXlaFv4frqy9SI9tyDuLZcj40i2/Zd+BZqRQnpaCN7zrjQfqQpYXpbBH4YKpDo3E4wwAxKSk+qcq5yKOloQEil0rZwQtkaeUqAjiQPVUhsCInhRh2RDx73PhEOYiYjhtIYhSnr/PfBCRMFMcGuKlEjjCvZGtXrAP5ccr5Ui4Y5uajfVx1tBfPkpSul3zvHNZ4EJRjRxmGl8aBqxlnUyiDtjM86skeUqpqFtrncRcKUB6MSd5aciAc5YjYi0dQZe0YiFLUkVk4ORTJ9DXMFIp7PIaAhyzVDwbTMa3/FcwVsm4qykl2gYcs6H3vQGiF9jWUJkNuUZD0FmJxpf16QLZSl3hgFMNezrLIPBMI3kI9npFkhO8a0gnmAwhzLJASYsihdMN0iG+pbwsREtUrIxWTewzRpe55L1roefOhDD2VJMF8+pvlZ5q004OCdIWPN8bhbVNUdTLxTLc+RKDuRxhrI0ExW7s53KIGgBIJnUylnuv1SgCRMn0HfLsPRRdoS932mPvEXYZwUNcD0a1CH/XAz7ZYBzKmsOWyddWPPWQS1hjlP/f4wb6L7fOowFf4yYusUikUs4cpKDcE/f4BJwAPwEBJ6ZHe/35I062umkZCiSeLrF2+ehq5HJav39kNk4mWXmW7udKZ3Ti0Lmkn7iat+N8xZJY/UeAq9gItxvJVOrY6cQKQOqeM57irSf6HmMs0tOEyDzaFM32Bq4Z43UtPaRorLFVOOiSdi8w/MihScdgP04AQwSWk/ZJntEtbHSWCjSYHLvs2KctnAxHnrfwWz98zPvUvfqUBuD25qbjqgByTHo8VjP3hLB+3cQrhbdwHKD51BymDllFBOOR1MJRVwpMejO8ygxEXeeeXx5gB7jigGXc13q1+ouSdlWfqTUcjVDiaAoSRlznI24xCZ0jeIPs8TXj7v0lzBFO2uG8tda8Iaz7UftgaY/N65PcMETgFs8iVMT5gdzHr2CaYEMj4UpBGghJ8abygZq7QZP8D03OAhlSbnNE9Zm8xC1sH0Ll/CFMm+d2stG3B9Hjs4ZYy6+m8ECE2gWlh7ChfVwQQJ48vVCRS7kjVTbWFPxkMB8qjdbXPIyO6GCo3pOX+ACYvCOo86fNPIhjRf92lu1gDH/hYm72ASfLineZP9eZ1EtjafrbEjFfL2P6xK1VHZtVMS/knz9e12lcE2dFnLrXTKTNNvYVpHwjaWDk5BjbyVX2MTlrnzoje6wQzcdDdvodvsYZqYr6ediHgSprnK1Db+nucm6gXITkjSCRBarCpd9mfPMFe0Xihc9oiU0wPBfgcnlHBewZye+38ZSIEg1x6mPw4VNi3G9/YcMoVCgQqUubWsuF/BnKCI8GSiptDJfwsTXknTPring7mPtMUsUlc4wFBifwFTCnmRCJCPHuZCLlQ6vGfQLgQJJSCLIHizRnaURxWZoLLeQLV4vtd4/meYi5rtlRybcruwhkqpMDlctUYfYB7qtTS1gykBkLzb3WRCaD3MI5X/L7Rs9eZ2pzbPWfdurp2L2vwO5obBa7OMNn3Hf4BZUdG/UMNhIbxqyDcSONFnv4MJPaIQhXpB7GBGTDiRCgDipKBomccPsrOsHAHdDxoSttUgfvOWbWH7yV54YMWHNJcvAf9h70q7VNWVaBhTDCqDqKjYgIqKCqL+/9/2UmFwaNu+67613n2em/3hHIQQyO5KqlKkUop5YWdGhwSuTDCOSg9/pa7KJkn0mUxbna4luSWTkuX8aKKNMmZGvt8a7ezkTOddZNp1c/bSSaLyqoeswcbrbj4iIzVpGqVYP5NJHaY3bSYrTk+xmGU1cI9ujHbAxNz91s2vqrLnM2XzrKAelA5oM9PhPLH8nr9lk2AFR1JLNbcT32bqGytcgDVNGMcRJEpxmlgmm7wwMmfKA5lMpuamkuF1Np3EyedUOUxsy1Sn6Ls4KeeazL1i4mjgryz3uGd25rGRLaw9PdmJuUMrXs6UEpUauEfbn5yZOjBuFuWa2RqFzx6kJuGdndm90ERho5aR7qZn1qgzfLFGoWGgNGQqx5rMI+s7fJalWLZfKC4gNT1IzKF/ykz1+OsMCACnUOQKkMj8jwwme/VBBmhCQJpnAKzperarbSAPmxAykmHGxhFP4WdXKdIyUiE1nj6KWLWNceKqJ6gtqd2Qk1jCqiZzAYA+Hzb/UmCIfatqHFW9uvY+d4zILmTY4LJfV2I/tCyuHwT26M42kxQonMbxvGKj5aht1PIAMGITADjxcqdmZhTiRI39X2V1Zcmev0ZUPxEO499Mo1EccxeXFMcVH2fzOOfer2tk2x471OOYt2XdO5Wnzbh2Lob7yMtrlxY728sd7tLK44o+VS9d/XKyaD/NMHugnHjLWknrMfeEofctDvnIu7+wSvV4rbX2FNY+aVxhTh7zGS1dLlglvYo+tky6RsPJZvlw1uheqIrXz43SiLaOudXcPdLAE9x3umbloiBsHCj63i/taC3/7tB87fekrceUds5bNprQJy8vluBnCf25eofeO4d/KE1fnHxZez0HoK/cvu9e5GWjfvruWjf23ldMf637YfLw4MvvfM+0u9D+2z3zrtj9h4iXL0df/Xr42nGr9PF7wYvyj1W+fhD5/ojvjbpvMv3+iKfXJh/5UV5AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQODPRrfpCqVvQtTvVpORh2VpVCwN+4Xf91fo+zL/Zt70XqBdvYrIm8WGIVjrL8KwnLhXr6gl48WpnPR0fmzseyN2uyyYbcncgKlnEBGpiXCDfqqT57XUxgEDMSjR/GYJO185rikQbCCRBJktT/v+bDyEHpHOpu95kT80V4pO6P0eH4zMksdYaAf4sgN96Ztza0CIdsaw/0yQ2ZF5nc8GJSyIZAGPwyL5Wc2Mp21HjCEn04ck4BeW1mpoEG0L6wAOmiCz5WmwGjoRBvNaoNer9Ndq/0roQDcGQa7dkUnGah2PRrHMPMaQnIEOvmCxI1NmbHgQ1pJJG+Z8QodwcqEOvGzJ7EG74RHG8PiU3afJEAnBvNFZjUi4dDoyeYzTUCa2qSapq9+TOeQhSPXfoAdbjYSVg7cLMp+txzsyN6hUbDWpiGTcj5kp3CI/1/1E+tUs/TdOgfj85o7MALaMTLCfFJBRwC34OP/iu3GI4JiXwnlH5h63EbJ5XPA9mSQFr/mNYd3CvvxLZHqogGwIbtGxNZk3YXXIBTJhEr0js9E28oxpaMfu+nRHZgDHAePR0B003y+Cy/eSybHgO+S8kMxw2kd1nsOwiua7SpD5XjINwwijKVpAL8jErSdMXyL69kt1FWFeviVzekjTIpsClBpu1PbQzcs5mu80ArAmm0ni4tYFAj+TqdZOI6VYaPUU514yi9prRK4HXiizQfFDIZs/wRk0aDbpCsfaHdejsVSb57J+7QWVRoMtiEHzr1nx7ydLHFLuCKrecPi8F/PjxYdSQij/Z/IrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDwX6FL+fH/+F5i2cjfpO4PgBFqVAvlf5rLF+8lsffSPkogSOAWA/uWE5z8I0FSlGgYtn6XB4jkx+3YVz9qsXed0TwFj9Bv3Y2+7YSUvj2mb6SOPh9TEmZunWLylmFup+gTjKH5KDJ323HaZvrEtshLgzTrNLsUVo/LNb9ffTq+ZdYiz/c+bPLRXsRMyJlEnErr6iBr1f08Mperg3Ti69d5K8Igs5qgSNnoMpvJ8jcJk41Osqh0N+TWx4bUCZ6j3d/bnmjOGXLN6ZintC2sxaDR42TsWqF36zGfQaYENomaFOpUjyzAkN79QV+WWToZ8IbF9mFmdxmUKbkeqqrMigm/Sd7YhVXYmOkvz6o8nR18TfayLA3qrLyTdDv05FusgX4qzumEp+kjrOLMxnLBLElSX/YBXL8yOJ2GciAB5J9FplEGJE5RQOS1vQLVXmuY0Ttdzc8AJhMUhzXxPGMca+0A50GhwHkOmLTXSGE+O6gAS4xgy1Zw3kFZgmXOMQssCVQ4Zn0opPZe3YVjkQCyRC8AW1bxySDe7phMM9lYnkz2oIDL8skj1eFDIzrCBWuX5emkzhDanwy09RkjT/eQ7GWDHUct/57yVQ60fIabIGxgtqSUqTAfo4GVoS7vTXO10QblrjRw7wRPo3rRbpdAWSfwNaKdIDNIDG5gGGsL9sTJle2Yp7Uf4GucvcEnL5rHaHx3uJYb9XGZb1E6ejAkclHH8sZfbtgGqu541uM9FEymzD1eDXBwCGA7YgJ+xrS9pMJtE/w63H+UfDXs0BOvTfIXVD7ABk+tdzxp9UxqNJeR2+5nKZ7vZC7ALK5So5IvdZbVnJE5UBM+cmrbr7yL+mVC5xAdDgZqEFkKc/srRTIn7LScMnXmkNHOko0CFtIoDEcFLJt7e3C0gwEqr5HiLtlFaXw0w45Mdl5bD83PjnJFq7kASCLdqTujxzU9pIyyGdfqhs0EqSXE58MfkknGUeECzE1OJgoUIxNZRzK16bTZLKlRy0zf2aywilFw492xvVg1ZLICY4+pwGzz2dFv2L+WJwX6Q0xhH6HhWZM5hq3RbG10IzPqyMx38DWbBP4q1V6Q6ZonD9Hz8m7Xs/VlpgCUZDw/RvziwhvXZBI5t9kb2Gv50/eq4F1s4G252r60ZLJurrTdfHX9RqYjz/r2iJmcV3hFJhsW63hVSXKap0i4udT4coRK6rthrfo0TCY/C7ndcLzof8ZeFdgC6Vowo/2OTC3DUHNUQOboG5ls4FNQ/zv2/DuZZ42cwOYppy01r+1/KdvxvM0p7I1tM5ao1oiRuUWjfbsPyR+zgwrXprpx6+alwyhKAoMut0y7dIq/JZNKU8UzqHyB6eFG5o6T+cXoqVZqpJGw7LdZ1qkNw5HjXBOmkfYw3RtUzzDp+ziZBiPnP+1d25aqOBANtxACinJHAVFU0Pau//9tUxW8dntOv8zDjGS/qDTUWmyKqko6O0WNz1K+tffit7udVGwHwfIA9WeTsV36KNqvCahB2lfjHWcznbnAToJkLuHdBjLZEKgp5my05Eyv7kU7Z9oShgPwOIRhqOhFPdWwuW58oIgQbigMSjFiDjx8OUNnaQeF8RhOBqHoMr/PoTSqZ/bSuRhn50iq2RdmKs+hIm37OKyqDjN758ePSBL7u+kmuYg9aC4JGPbElj7Ume07sB2NqP3SwY9QdsvOVmp8n1kzX2d51deJDjVqp01aw/fZFONjCXyeUvvRhv21aTu5b5f75qqfLdy/T8F1rxH7X/+z9QsPP6413zwXIndBk5CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJD4E/49VfI7iWAXCf3PGPm/8VYdPKWXLEjq+2eAV1e/N64YFAn99SQ1elWjxodcqZPwo8ms2ZBij2iazVvpwyqxfiPK2gn52V/tuk3xSuaaTej+tvz4Q8n86jdxwDwST7l3Cb8Kh99kJk9rBG97T1wFu9aeLciAPDdouS8SvCp+ic9qOOVuBl6BzBYy3U8ms1yNI4cVJB71XfEK+30U/jyUoz/CoGiptrgfeV4TaD6Sj8e+nq8xyXFlu4ebZvBDyYzYnuRsDWROYmKZVqvTAw5o6NUlrow216VKi7x2iVV6XqkSQaZbe6HbsnUsi3O9RpU6cS+93uWImr09O5T4dzBTCDPRdEkKsdz9c8lU+znco3L3TPixhNfT9ERPtXEFxNjMxx/TRYKHHAvI1PcafB2iMkhNViLWQqglFcdv2dm0GLP74IZWa6ZBgcBmRipGPzrNm5FBjAiS7UivjDR1vWEWirzE87gKMg38cTfKNmU55pPMq84jyD1WwPvLKj5MMopq1VMYUX8E3m2MJ+fY7XF2JEeH+ZULT0ZDMysdHlSqECuyOlBX4s4DI73f7090HcOawicFljfYhdva6EuFkHCi4aEEWyAHepOKdooJEMguaAR7+9J5g2v/fVT65hgz022Gyl0DzZhdqD2v6TYeDk9N09hcs4Gzdf8EgXNAFqtGIRvgxSKUaxF89ASZ2NNzANXOWCG0QpogieUkGnG/At5NC7WsQGOZjVszorOv2ZFSXrzmR8swDNfRIUt4IgSa4FoTF8g8QpUTczuFD68l8yjSja3FuINC7sw4n4BHe9iTMilVciWzFpo1OHHKaXfGROYjAam4b4EQoWF2sRmSSZFM7aTAx9UzhThVOa0oqabA4DZYZhgewhnqnpuYvJIZnfodIxNKo4EJtZEPxVKI+nz0vZH+nkzhmTHfpsY0CxZHBa4SJaQZl/42C65khiwRBTvlw7iTnmnhllHVfBphVPzCqPiOzBxDYcg2EA5R+9g2oKWBILRkkLAEmes+mLFw944udUO/lUaK4h44xExjkx0gMcfY6hx4+kGmNoXK3B3DyOnCGnwInqb7kJDwMFKnAplnlagbhmZo06lu6CKbb23bns5X4sbXGZv18i2DEuhKJm3JbBMQ13nundjGgAyezeraYVPdQY+188LX0CkLtl1+Ab1oxmbjtFtk8uGQcz46BaGIlsfNnDGeROThmfbDM7N6w5ie4DBxfcpg0NMr56eUKA4OjLZY9SszDWIvqVozHes4PTCuuMlsrWixTsXcpjiGJ4gZIwMKH9UgFl2kV2UuLbHjdHtlui6vol0rpsbNTHeVkaZJ3s8avR07vZ9X+n692TkOn5tI3/ciJK+CZvI012m+nHjXRz9Nbb4ckJCQkJCQkJCQkJCQkJCQaPEPkJMLixs2PjoAAAAASUVORK5CYII=|332x190px|Parent-to-child-setter]]
Test it
E2E tests of input property setter with empty and non-empty names:
// ...
it('should display trimmed, non-empty names', async () => {
const nonEmptyNameIndex = 0;
const nonEmptyName = '"Dr IQ"';
const parent = element(by.tagName('app-name-parent'));
const hero = parent.all(by.tagName('app-name-child')).get(nonEmptyNameIndex);
const displayName = await hero.element(by.tagName('h3')).getText();
expect(displayName).toEqual(nonEmptyName);
});
it('should replace empty name with default name', async () => {
const emptyNameIndex = 1;
const defaultName = '"<no name set>"';
const parent = element(by.tagName('app-name-parent'));
const hero = parent.all(by.tagName('app-name-child')).get(emptyNameIndex);
const displayName = await hero.element(by.tagName('h3')).getText();
expect(displayName).toEqual(defaultName);
});
// ...
Intercept input property changes with ngOnChanges()
Detect and act upon changes to input property values with the ngOnChanges()
method of the OnChanges
lifecycle hook interface.
You may prefer this approach to the property setter when watching multiple, interacting input properties.
Learn about
ngOnChanges()
in the Lifecycle Hooks chapter.
This VersionChildComponent
detects changes to the major
and minor
input properties and composes a log message reporting these changes:
import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';
@Component({
selector: 'app-version-child',
template: `
<h3>Version {{major}}.{{minor}}</h3>
<h4>Change log:</h4>
<ul>
<li *ngFor="let change of changeLog">{{change}}</li>
</ul>
`
})
export class VersionChildComponent implements OnChanges {
@Input() major: number;
@Input() minor: number;
changeLog: string[] = [];
ngOnChanges(changes: SimpleChanges) {
const log: string[] = [];
for (const propName in changes) {
const changedProp = changes[propName];
const to = JSON.stringify(changedProp.currentValue);
if (changedProp.isFirstChange()) {
log.push(`Initial value of ${propName} set to ${to}`);
} else {
const from = JSON.stringify(changedProp.previousValue);
log.push(`${propName} changed from ${from} to ${to}`);
}
}
this.changeLog.push(log.join(', '));
}
}
The VersionParentComponent
supplies the minor
and major
values and binds buttons to methods that change them.
import { Component } from '@angular/core';
@Component({
selector: 'app-version-parent',
template: `
<h2>Source code version</h2>
<button (click)="newMinor()">New minor version</button>
<button (click)="newMajor()">New major version</button>
<app-version-child [major]="major" [minor]="minor"></app-version-child>
`
})
export class VersionParentComponent {
major = 1;
minor = 23;
newMinor() {
this.minor++;
}
newMajor() {
this.major++;
this.minor = 0;
}
}
Here's the output of a button-pushing sequence:
[[../File:data:image/gif;base64,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|481x264px|Parent-to-child-onchanges]]
Test it
Test that both input properties are set initially and that button clicks trigger the expected ngOnChanges
calls and values:
// ...
// Test must all execute in this exact order
it('should set expected initial values', async () => {
const actual = await getActual();
const initialLabel = 'Version 1.23';
const initialLog = 'Initial value of major set to 1, Initial value of minor set to 23';
expect(actual.label).toBe(initialLabel);
expect(actual.count).toBe(1);
expect(await actual.logs.get(0).getText()).toBe(initialLog);
});
it('should set expected values after clicking \'Minor\' twice', async () => {
const repoTag = element(by.tagName('app-version-parent'));
const newMinorButton = repoTag.all(by.tagName('button')).get(0);
await newMinorButton.click();
await newMinorButton.click();
const actual = await getActual();
const labelAfter2Minor = 'Version 1.25';
const logAfter2Minor = 'minor changed from 24 to 25';
expect(actual.label).toBe(labelAfter2Minor);
expect(actual.count).toBe(3);
expect(await actual.logs.get(2).getText()).toBe(logAfter2Minor);
});
it('should set expected values after clicking \'Major\' once', async () => {
const repoTag = element(by.tagName('app-version-parent'));
const newMajorButton = repoTag.all(by.tagName('button')).get(1);
await newMajorButton.click();
const actual = await getActual();
const labelAfterMajor = 'Version 2.0';
const logAfterMajor = 'major changed from 1 to 2, minor changed from 23 to 0';
expect(actual.label).toBe(labelAfterMajor);
expect(actual.count).toBe(2);
expect(await actual.logs.get(1).getText()).toBe(logAfterMajor);
});
async function getActual() {
const versionTag = element(by.tagName('app-version-child'));
const label = await versionTag.element(by.tagName('h3')).getText();
const ul = versionTag.element((by.tagName('ul')));
const logs = ul.all(by.tagName('li'));
return {
label,
logs,
count: await logs.count(),
};
}
// ...
Parent listens for child event
The child component exposes an EventEmitter
property with which it emits
events when something happens. The parent binds to that event property and reacts to those events.
The child's EventEmitter
property is an output property, typically adorned with an @Output() decorator as seen in this VoterComponent
:
import { Component, EventEmitter, Input, Output } from '@angular/core';
@Component({
selector: 'app-voter',
template: `
<h4>{{name}}</h4>
<button (click)="vote(true)" [disabled]="didVote">Agree</button>
<button (click)="vote(false)" [disabled]="didVote">Disagree</button>
`
})
export class VoterComponent {
@Input() name: string;
@Output() voted = new EventEmitter<boolean>();
didVote = false;
vote(agreed: boolean) {
this.voted.emit(agreed);
this.didVote = true;
}
}
Clicking a button triggers emission of a true
or false
, the boolean payload.
The parent VoteTakerComponent
binds an event handler called onVoted()
that responds to the child event payload $event
and updates a counter.
import { Component } from '@angular/core';
@Component({
selector: 'app-vote-taker',
template: `
<h2>Should mankind colonize the Universe?</h2>
<h3>Agree: {{agreed}}, Disagree: {{disagreed}}</h3>
<app-voter *ngFor="let voter of voters"
[name]="voter"
(voted)="onVoted($event)">
</app-voter>
`
})
export class VoteTakerComponent {
agreed = 0;
disagreed = 0;
voters = ['Narco', 'Celeritas', 'Bombasto'];
onVoted(agreed: boolean) {
agreed ? this.agreed++ : this.disagreed++;
}
}
The framework passes the event argument—represented by $event
—to the handler method, and the method processes it:
[[../File:data:image/gif;base64,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kypNStToTKJLo0pd2fQo0qlYs2as+vSk1q9gE3L1Gbas2bFXzaoFK0HPHRRP5qRdS3eqURR4UTA6VLev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJYIQByPpKjiiiy26OKLMMYIYxwAiPbIYTeGpohhAuyo4wGG+QiakIQRqZUfPSCCBZBCGSkQHnzYIKUNQASwQgCOJKEkk1I5idUedSixFCEI8QEFk3TwIJAjGyCiFZlgacGDDjwIgQUWVwIFZ0FF9AEFFgFgUQgfWVg5EKBT7amVCjj0CcVATvRhQx19DOFIDzvYAMUJS3BQgxGAcuopqAwRkidBdph56g+SYJnEDB74/yAlE0FcGakNHDRiQQC3UmopppqK+mmonQ57kKJYFZIEEQH4cUYEHgSwRCMB0MDBEE7w0UgE0urqxAYzdMsruNEqhGwAHjga7ZUqnMHrq17UGYC2Ai2BAxZa1BDutNVem+223Vrw7b7UDlwuQedG5QENQFQQgBY9ELGCE8tyu4Sl4D4csQceqKAExERw7DG35hoUwQl+khxBu67OkK8RBa1AQACB9DCDEzWELC3G4YIs8scbd6wEyQiD9YOUHOCKQwRe5IDuDRcPHIAXU0p5hhdJT+nuQn8g5GcAERAA9bYUz0AAEn08UcBAstYAib5NPx11xlRXfXXWVh/UtVYUE/8xcwBIqEkx2DuXrbHfAcwM8sx/c20yylBgkHi2UEQw8MzcerVBDATk63IPYBcR9auHM1564gjtnZWzDgtEcQxN8EuDDdhmLC7KQ9xeKUOqD8StmZIfsQStBAxMg5oDIRAABY+qwAHsstMute6584u73loJj0PjTfygRAK3MrGEEjrYnoekVAaBwflSAqH+QpAchDIISLuPAQblhytrA8oHIMEDF+iBEeyFgfCNL38CYV/61oc++xkkflmpwP0MkoAAJKACCdAeBlp3vw1KsIMenOBCdnCQ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|418x342px|Child-to-parent]]
Test it
Test that clicking the Agree and Disagree buttons update the appropriate counters:
// ...
it('should not emit the event initially', async () => {
const voteLabel = element(by.tagName('app-vote-taker')).element(by.tagName('h3'));
expect(await voteLabel.getText()).toBe('Agree: 0, Disagree: 0');
});
it('should process Agree vote', async () => {
const voteLabel = element(by.tagName('app-vote-taker')).element(by.tagName('h3'));
const agreeButton1 = element.all(by.tagName('app-voter')).get(0)
.all(by.tagName('button')).get(0);
await agreeButton1.click();
expect(await voteLabel.getText()).toBe('Agree: 1, Disagree: 0');
});
it('should process Disagree vote', async () => {
const voteLabel = element(by.tagName('app-vote-taker')).element(by.tagName('h3'));
const agreeButton1 = element.all(by.tagName('app-voter')).get(1)
.all(by.tagName('button')).get(1);
await agreeButton1.click();
expect(await voteLabel.getText()).toBe('Agree: 0, Disagree: 1');
});
// ...
Parent interacts with child via local variable
A parent component cannot use data binding to read child properties or invoke child methods. You can do both by creating a template reference variable for the child element and then reference that variable within the parent template as seen in the following example.
The following is a child CountdownTimerComponent
that repeatedly counts down to zero and launches a rocket. It has start
and stop
methods that control the clock and it displays a countdown status message in its own template.
import { Component, OnDestroy } from '@angular/core';
@Component({
selector: 'app-countdown-timer',
template: '<p>{{message}}</p>'
})
export class CountdownTimerComponent implements OnDestroy {
intervalId = 0;
message = '';
seconds = 11;
ngOnDestroy() { this.clearTimer(); }
start() { this.countDown(); }
stop() {
this.clearTimer();
this.message = `Holding at T-${this.seconds} seconds`;
}
private clearTimer() { clearInterval(this.intervalId); }
private countDown() {
this.clearTimer();
this.intervalId = window.setInterval(() => {
this.seconds -= 1;
if (this.seconds === 0) {
this.message = 'Blast off!';
} else {
if (this.seconds < 0) { this.seconds = 10; } // reset
this.message = `T-${this.seconds} seconds and counting`;
}
}, 1000);
}
}
The CountdownLocalVarParentComponent
that hosts the timer component is as follows:
import { Component } from '@angular/core';
import { CountdownTimerComponent } from './countdown-timer.component';
@Component({
selector: 'app-countdown-parent-lv',
template: `
<h3>Countdown to Liftoff (via local variable)</h3>
<button (click)="timer.start()">Start</button>
<button (click)="timer.stop()">Stop</button>
<div class="seconds">{{timer.seconds}}</div>
<app-countdown-timer #timer></app-countdown-timer>
`,
styleUrls: ['../assets/demo.css']
})
export class CountdownLocalVarParentComponent { }
The parent component cannot data bind to the child's start
and stop
methods nor to its seconds
property.
You can place a local variable, #timer
, on the tag <countdown-timer>
representing the child component. That gives you a reference to the child component and the ability to access any of its properties or methods from within the parent template.
This example wires parent buttons to the child's start
and stop
and uses interpolation to display the child's seconds
property.
Here we see the parent and child working together.
[[../File:data:image/gif;base64,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|212x172px|countdown timer]]
Test it
Test that the seconds displayed in the parent template match the seconds displayed in the child's status message. Test also that clicking the Stop button pauses the countdown timer:
// ...
// The tests trigger periodic asynchronous operations (via `setInterval()`), which will prevent
// the app from stabilizing. See https://angular.io/api/core/ApplicationRef#is-stable-examples
// for more details.
// To allow the tests to complete, we will disable automatically waiting for the Angular app to
// stabilize.
beforeEach(() => browser.waitForAngularEnabled(false));
afterEach(() => browser.waitForAngularEnabled(true));
it('timer and parent seconds should match', async () => {
const parent = element(by.tagName(parentTag));
const startButton = parent.element(by.buttonText('Start'));
const seconds = parent.element(by.className('seconds'));
const timer = parent.element(by.tagName('app-countdown-timer'));
await startButton.click();
// Wait for `<app-countdown-timer>` to be populated with any text.
await browser.wait(() => timer.getText(), 2000);
expect(await timer.getText()).toContain(await seconds.getText());
});
it('should stop the countdown', async () => {
const parent = element(by.tagName(parentTag));
const startButton = parent.element(by.buttonText('Start'));
const stopButton = parent.element(by.buttonText('Stop'));
const timer = parent.element(by.tagName('app-countdown-timer'));
await startButton.click();
expect(await timer.getText()).not.toContain('Holding');
await stopButton.click();
expect(await timer.getText()).toContain('Holding');
});
// ...
Parent calls an @ViewChild()
The local variable approach is simple and easy. But it is limited because the parent-child wiring must be done entirely within the parent template. The parent component itself has no access to the child.
You can't use the local variable technique if an instance of the parent component class must read or write child component values or must call child component methods.
When the parent component class requires that kind of access, inject the child component into the parent as a ViewChild.
The following example illustrates this technique with the same Countdown Timer example. Neither its appearance nor its behavior will change. The child CountdownTimerComponent is the same as well.
The switch from the local variable to the ViewChild technique is solely for the purpose of demonstration.
Here is the parent, CountdownViewChildParentComponent
:
import { AfterViewInit, ViewChild } from '@angular/core';
import { Component } from '@angular/core';
import { CountdownTimerComponent } from './countdown-timer.component';
@Component({
selector: 'app-countdown-parent-vc',
template: `
<h3>Countdown to Liftoff (via ViewChild)</h3>
<button (click)="start()">Start</button>
<button (click)="stop()">Stop</button>
<div class="seconds">{{ seconds() }}</div>
<app-countdown-timer></app-countdown-timer>
`,
styleUrls: ['../assets/demo.css']
})
export class CountdownViewChildParentComponent implements AfterViewInit {
@ViewChild(CountdownTimerComponent)
private timerComponent: CountdownTimerComponent;
seconds() { return 0; }
ngAfterViewInit() {
// Redefine `seconds()` to get from the `CountdownTimerComponent.seconds` ...
// but wait a tick first to avoid one-time devMode
// unidirectional-data-flow-violation error
setTimeout(() => this.seconds = () => this.timerComponent.seconds, 0);
}
start() { this.timerComponent.start(); }
stop() { this.timerComponent.stop(); }
}
It takes a bit more work to get the child view into the parent component class.
First, you have to import references to the ViewChild
decorator and the AfterViewInit
lifecycle hook.
Next, inject the child CountdownTimerComponent
into the private timerComponent
property via the @ViewChild
property decoration.
The #timer
local variable is gone from the component metadata. Instead, bind the buttons to the parent component's own start
and stop
methods and present the ticking seconds in an interpolation around the parent component's seconds
method.
These methods access the injected timer component directly.
The ngAfterViewInit()
lifecycle hook is an important wrinkle. The timer component isn't available until after Angular displays the parent view. So it displays 0
seconds initially.
Then Angular calls the ngAfterViewInit
lifecycle hook at which time it is too late to update the parent view's display of the countdown seconds. Angular's unidirectional data flow rule prevents updating the parent view's in the same cycle. The app has to wait one turn before it can display the seconds.
Use setTimeout()
to wait one tick and then revise the seconds()
method so that it takes future values from the timer component.
Test it
Use the same countdown timer tests as before.
Parent and children communicate via a service
A parent component and its children share a service whose interface enables bi-directional communication within the family.
The scope of the service instance is the parent component and its children. Components outside this component subtree have no access to the service or their communications.
This MissionService
connects the MissionControlComponent
to multiple AstronautComponent
children.
import { Injectable } from '@angular/core';
import { Subject } from 'rxjs';
@Injectable()
export class MissionService {
// Observable string sources
private missionAnnouncedSource = new Subject<string>();
private missionConfirmedSource = new Subject<string>();
// Observable string streams
missionAnnounced$ = this.missionAnnouncedSource.asObservable();
missionConfirmed$ = this.missionConfirmedSource.asObservable();
// Service message commands
announceMission(mission: string) {
this.missionAnnouncedSource.next(mission);
}
confirmMission(astronaut: string) {
this.missionConfirmedSource.next(astronaut);
}
}
The MissionControlComponent
both provides the instance of the service that it shares with its children (through the providers
metadata array) and injects that instance into itself through its constructor:
import { Component } from '@angular/core';
import { MissionService } from './mission.service';
@Component({
selector: 'app-mission-control',
template: `
<h2>Mission Control</h2>
<button (click)="announce()">Announce mission</button>
<app-astronaut *ngFor="let astronaut of astronauts"
[astronaut]="astronaut">
</app-astronaut>
<h3>History</h3>
<ul>
<li *ngFor="let event of history">{{event}}</li>
</ul>
`,
providers: [MissionService]
})
export class MissionControlComponent {
astronauts = ['Lovell', 'Swigert', 'Haise'];
history: string[] = [];
missions = ['Fly to the moon!',
'Fly to mars!',
'Fly to Vegas!'];
nextMission = 0;
constructor(private missionService: MissionService) {
missionService.missionConfirmed$.subscribe(
astronaut => {
this.history.push(`${astronaut} confirmed the mission`);
});
}
announce() {
const mission = this.missions[this.nextMission++];
this.missionService.announceMission(mission);
this.history.push(`Mission "${mission}" announced`);
if (this.nextMission >= this.missions.length) { this.nextMission = 0; }
}
}
The AstronautComponent
also injects the service in its constructor. Each AstronautComponent
is a child of the MissionControlComponent
and therefore receives its parent's service instance:
import { Component, Input, OnDestroy } from '@angular/core';
import { MissionService } from './mission.service';
import { Subscription } from 'rxjs';
@Component({
selector: 'app-astronaut',
template: `
<p>
{{astronaut}}: <strong>{{mission}}</strong>
<button
(click)="confirm()"
[disabled]="!announced || confirmed">
Confirm
</button>
</p>
`
})
export class AstronautComponent implements OnDestroy {
@Input() astronaut: string;
mission = '<no mission announced>';
confirmed = false;
announced = false;
subscription: Subscription;
constructor(private missionService: MissionService) {
this.subscription = missionService.missionAnnounced$.subscribe(
mission => {
this.mission = mission;
this.announced = true;
this.confirmed = false;
});
}
confirm() {
this.confirmed = true;
this.missionService.confirmMission(this.astronaut);
}
ngOnDestroy() {
// prevent memory leak when component destroyed
this.subscription.unsubscribe();
}
}
Notice that this example captures the
subscription
andunsubscribe()
when theAstronautComponent
is destroyed. This is a memory-leak guard step. There is no actual risk in this app because the lifetime of aAstronautComponent
is the same as the lifetime of the app itself. That would not always be true in a more complex application.You don't add this guard to the
MissionControlComponent
because, as the parent, it controls the lifetime of theMissionService
.
The History log demonstrates that messages travel in both directions between the parent MissionControlComponent
and the AstronautComponent
children, facilitated by the service:
[[../File:data:image/gif;base64,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AAEIHEiwoMGDCBMqXMiwocOHEA9u6ECxosWLGDNq3MjxIoSIIEOKHEmyJMEOBVKqXMmypcuXMGOy7GCyps2bOB2ilMmzp0+YNHMKHUp0ZAcOBZAqTcp0qdOmUJ9KjUp1adCiWLNqPWmBg9evYMOKHUu2rFmwILaqXSsUBIeuFuLKBZNChAgxZT68lcu3b1wbNWj4iYFkr9/Dfq+yXcwYJAjEJmKwUGDhC40yhhHLPYEChoXIhTWLjtu4tOmGj/1+kOBlMwoyH0bLLYIijOzbFtKe3s174IffwD/MqIEjeHC6MmiEOWGiBIgrIljcqCvCiw3CkceI6BCjA3QYZr5b/zD+O0Tv87vJR35B/sP0yTlKvDBxxYsCG1fCGOjMPMb8KyycMEN9CrgQXYGXtYfegqWd4OCD6z344AfNISFQZ/S9cAIY+U0HQ3/zyXdAhiB+kAMNaEjo4AdDMOjiVkM4eMAJMx7AYRg1niDQASeWcYKH6x1wQw0teHjCdS8gOaJ/ByB5Qo80yuhgiy9WSdQQB2SpZZYoeLEla03K92MKMNgg4o0ehpmkiGa+oCaPl22pJZVW1nkTlnLOiB8LEBhghojvFShfmwfMEEORKLAQpkBsNupmj3keQKedlJI0hAEHYKqpAQbYsIJdY7zAAKeeJjdBp/IxMBwOHqIawAAXiP/aJgOznihJlpxmeoAQlfY6khCcBhssA8QyoAAEo2JKbKbDjsqssJwSgAEADwzLabG5Jissr752C5EQxYYr7rjklhtuAANVa2653Hrr7kIrQCDvvPTWa++9+DIwUAQAUGAAvviu8O7ACcUL8MEI18sAugT5m/C8AhMsMUErbGDxxRhnrPHGHH9kEAUQcKxxxBNPjMAKKKes8sost+xyuwWNIITLKguBQMk456zzzjz37PPPQAct9NBEF2300UgnrfTSTDft9NNQRy311FRXbfXVWGet9dZcd+3112CHLfbYZJdt9tlop6322my37fbbcMct99x012333XjnrffefPf/7fffgAcu+OCEF2744YgnrvjijDfu+OOQRy755JRXbvnlmGeu+eacd+7556CHLvropJdu+umop6766qy37vrrsMcu++y012777bjnrvvuvPfu++/ABy/88MQXb/zxyCev/PLMN+/889BHL/301Fdv/fXYZ6/99tx37/334Icv/vjkl2/+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|310x346px|bidirectional-service]]
Test it
Tests click buttons of both the parent MissionControlComponent
and the AstronautComponent
children and verify that the history meets expectations:
// ...
it('should announce a mission', async () => {
const missionControl = element(by.tagName('app-mission-control'));
const announceButton = missionControl.all(by.tagName('button')).get(0);
const history = missionControl.all(by.tagName('li'));
await announceButton.click();
expect(await history.count()).toBe(1);
expect(await history.get(0).getText()).toMatch(/Mission.* announced/);
});
it('should confirm the mission by Lovell', async () => {
await testConfirmMission(1, 'Lovell');
});
it('should confirm the mission by Haise', async () => {
await testConfirmMission(3, 'Haise');
});
it('should confirm the mission by Swigert', async () => {
await testConfirmMission(2, 'Swigert');
});
async function testConfirmMission(buttonIndex: number, astronaut: string) {
const missionControl = element(by.tagName('app-mission-control'));
const announceButton = missionControl.all(by.tagName('button')).get(0);
const confirmButton = missionControl.all(by.tagName('button')).get(buttonIndex);
const history = missionControl.all(by.tagName('li'));
await announceButton.click();
await confirmButton.click();
expect(await history.count()).toBe(2);
expect(await history.get(1).getText()).toBe(`${astronaut} confirmed the mission`);
}
// ...
© 2010–2021 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://angular.io/guide/component-interaction