Optimistic update avec les signals : ton UI répond au clic, pas au réseau
23 octobre 2026
Le pattern optimistic update avec signals : UI mise à jour au clic, requête en arrière-plan, et le rollback qui restaure un état périmé dès qu'on clique vite.
Apprendre Angular, un pas à la fois.
Des articles clairs, pratiques, et sans blabla, pour apprendre Angular comme on code vraiment et suivre sa communauté.
149 articles trouvés
Sujets populaires
23 octobre 2026
Le pattern optimistic update avec signals : UI mise à jour au clic, requête en arrière-plan, et le rollback qui restaure un état périmé dès qu'on clique vite.
21 octobre 2026
Ton sélecteur ne matche pas, tu dégaines ::ng-deep, et tes styles fuient sur des composants qui n'ont rien demandé. 4 alternatives propres, démontrées.
19 octobre 2026
403 sur tous les POST, cookie XSRF-TOKEN présent, header absent : les 4 règles de l'interceptor CSRF d'Angular, la comparaison d'origines et la CVE-2025-66035.
16 octobre 2026
FormArray<never>, la ligne désactivée qui disparaît de value, le track qui détruit la mauvaise ligne : 3 pièges de FormArray, corrigés sans un seul cast.
14 octobre 2026
moveItemInArray mute ton tableau, ton signal ne voit rien : l'item revient à sa place mais tes données ont bougé. Les 3 pièges du drag & drop CDK + signals.
12 octobre 2026
moveItemInArray mute en place, ton signal ne notifie rien : l'@for suit, mais computed, input() et effect() restent figés. 4 pièges du CDK Drag & Drop.
9 octobre 2026
Angular Native rend tes composants Angular en vues natives iOS et Android, avec Fabric et Expo, sans WebView. Ce qui passe depuis le web, et les 6 pièges.
9 octobre 2026
Ton toast d'erreur disparaît au bout d'une seconde ? Le setTimeout du toast précédent l'a fermé. Le correctif en 90 lignes de signals, testé et accessible.
7 octobre 2026
400 inexpliqué, barre d'upload morte : les 4 pièges de l'upload en Angular, dont celui de la v22 : fetch, transport par défaut, ne mesure pas l'envoi.
5 octobre 2026
Une CSP stricte bloque les styles qu'Angular injecte et le critical CSS inliné. La parade : un nonce par requête via ngCspNonce sur l'élément racine.
2 octobre 2026
Un guard testé à la main reste vert même débranché de la route. RouterTestingHarness teste la vraie navigation : câblage, redirections, inputs, 4 pièges.
30 septembre 2026
Avec environment.ts, le bundle livré en prod n'est pas celui que ta QA a validé. La config runtime (config.json + InjectionToken) livre le même build partout.
28 septembre 2026
Un déploiement qui touche un chunk lazy casse les onglets déjà ouverts, et le retry est sans espoir. Le remède, mesuré : withNavigationErrorHandler.
24 septembre 2026
Angular 22.2 ajoute @boundary : un composant qui lève une erreur affiche un fallback au lieu de figer ses voisins. Ce que @boundary attrape, ce qu'il rate.
21 septembre 2026
Signal Forms est stable en Angular 22. Migrer un Reactive Form : form(), schéma de validation, [formField], submit(), et 5 pièges mesurés au passage.
18 septembre 2026
Focus trap maison, z-index à 9999, ESC codé à la main : le navigateur fait déjà tout ça. Le câblage <dialog> + signals, et les trois pièges qui restent.
16 septembre 2026
Ton mock de HttpClient rend un test vert qui ne vérifie ni l'URL, ni les params, ni les erreurs. HttpTestingController fait mieux, à 5 pièges près.
14 septembre 2026
Tab s'échappe derrière l'overlay, le focus se perd à la fermeture, le lecteur d'écran n'entend rien : trois trous que le CDK a11y et le dialog natif ferment.
11 septembre 2026
Ton site statique embarque un chemin SSR que tu n'as jamais demandé. Le rendu hybride Angular 20+ : RenderMode par route, getPrerenderParams, fallback.
9 septembre 2026
Tu extrais une section de formulaire en sous-composant et formGroupName jette une NG01053. Le fix ControlContainer + viewProviders, expliqué par la DI.
7 septembre 2026
Un scoring sur 100 000 noms gèle la saisie, et aucune API Angular n'y peut rien. Un Web Worker sort le calcul du main thread - pièges de build compris.
5 septembre 2026
Ton state reste en loading : le guard a dispatché pour une navigation morte après lui. Sous NgRx, un seul des quatre emplacements possibles se déclenche sur une navigation déjà réussie.
4 septembre 2026
Ajouter une implémentation ne devrait jamais modifier le service qui l'orchestre. Les multi-providers ferment ce couplage, avec 3 pièges à connaître.
2 septembre 2026
Un caractère tapé = une requête HTTP, un statut PENDING qui ne retombe jamais, un submit qui part trop tôt : 4 pièges des validateurs async, et les correctifs.
31 août 2026
En test, whenStable n'attend ni on idle ni on timer, et on viewport casse dans jsdom. DeferBlockState rend tes quatre états @defer enfin testables.
28 août 2026
Un @for de 10 000 lignes crée 10 000 nœuds DOM, et track n'y change rien. Le CDK Virtual Scroll en rend 15, quelle que soit la taille de la liste.
26 août 2026
Constructor, field initializer, test : là où NG0950 tombe, les 4 fenêtres où lire un signal input, et l'optionnel qui a le même bug sans crash.
24 août 2026
Ton fakeAsync plante en zoneless avec un message cryptique. Son remplaçant Vitest tient en trois lignes, mais quatre pièges donnent faux verts et timeouts.
22 août 2026
Installer axe-core sur une app Angular et le brancher aux deux niveaux : le composant en jsdom ne fait mordre que 15 des 40 règles de la page servie.
21 août 2026
NG0500 en dev, DOM corrompu en silence en prod : ce que l'hydratation Angular compare vraiment, les 3 causes réelles du mismatch, les 2 fausses, les correctifs.
20 août 2026
ng generate @angular/core:signals te félicite et casse le typecheck de tes specs. Les 15 migrations opt-in, leur version d'apparition, et cinq angles morts.
19 août 2026
Ton PATCH part en prod sans le champ role. disabled, null, Partial et get() : 4 pièges des Typed Forms, et le cast qui les masque tous.
14 août 2026
Ton monitoring est calme depuis la migration zoneless ? Les erreurs async ne passent plus par ErrorHandler, et ton test dans un (click) ne prouve rien.
12 août 2026
Tu passes en `Route.providers` pour scoper un service à une feature. Tu quittes. Tu reviens. Le state est toujours là. Voici ce qu'un `EnvironmentInjector` de route fait vraiment, les 3 patterns qui marchent sans rien de plus, et les deux façons de forcer un vrai reset d'un state éphémère.
11 août 2026
Tu migres un `@Attribute()` vers `inject(new HostAttributeToken())` parce que c'est l'API moderne, et ton composant se met à throw NG0201 sur un attribut HTML que tu n'as jamais fourni via un provider. Le token ne lit pas le DOM : il lit l'attribut statique écrit dans le template, avec un contrat d'erreur inverse de celui du décorateur. Les six écritures qu'il voit ou pas, quatre pièges, et le gain réel qui justifie quand même la migration.
10 août 2026
bypassSecurityTrustHtml() ouvre une XSS qu'aucun test unitaire ne voit, [innerHTML] retire bien plus que tu ne le crois derrière un simple avertissement console qu'on rate facilement, et bypassSecurityTrustResourceUrl() charge une iframe sur un domaine attaquant dès qu'un morceau d'URL touche à l'origine. Guide complet des pièges DomSanitizer avec Trusted Types et DOMPurify.
10 août 2026
Rapport de couverture à l'appui : ce que 23 tests couvrent vraiment sur une app Angular, et pourquoi viser un pourcentage est une mauvaise idée.
10 août 2026
Découper un composant puis passer au NgRx Signal Store sans modifier une ligne de test : la démonstration, commit par commit, de ce que le TDD promet vraiment.
10 août 2026
Tes tests Angular se noient dans les querySelector ? Le Page Model sépare le comment du quoi. Anatomie, montée en puissance progressive et pièges à éviter.
10 août 2026
Page blanche, aucun composant, aucun test. Le premier cycle RED-GREEN-REFACTOR pas à pas en Angular zoneless avec Vitest, et les erreurs à éviter.
10 août 2026
Une suite Angular de 23 tests avec un seul mock. Pourquoi le fake bat le mock presque partout, et le seul cas qui justifie vraiment un spy.
10 août 2026
Un test n'est pas un acquis définitif. Les cinq cas où le supprimer est la bonne décision, le seul cas où c'est de la triche, et comment faire la différence.
10 août 2026
inject() marche dans onInit et plante dans onDestroy. Le mécanisme derrière cette asymétrie, les deux formes de withHooks, et quand le hook tourne vraiment.
7 août 2026
Remplacer un effect() qui touche au DOM par afterRenderEffect() : les phases earlyRead, write, mixedReadWrite et read, et les pièges de timing.
7 août 2026
Pourquoi disabled="false" désactive quand même ton bouton, et comment brancher booleanAttribute et numberAttribute sur tes signal inputs Angular.
3 août 2026
Ton main thread hydrate le footer et la FAQ avant que l'utilisateur puisse cliquer. Ce que defer hydrate on change, ses triggers, et les deux conditions.
31 juillet 2026
Ton utilisateur reclique sur /dashboard, ton NavigationEnd n'entend rien, ton tracker perd un pageview. NavigationSkipped, ses deux codes et la config.
30 juillet 2026
Angular 22.1 ajoute l'option set à linkedSignal : l'écriture remonte à la source au lieu d'être perdue au recalcul. Plus le reste du changelog 22.1.
29 juillet 2026
Ton utilisateur revient sur la liste et perd filtres, scroll et data. Les 3 stratégies pour préserver le state, dans l'ordre où tu devrais les essayer.
28 juillet 2026
setInput() n'échoue pas sur un nom d'input inconnu : NG0303 en dev, rien en prod. Lis le contrat réel d'un composant avec reflectComponentType.
27 juillet 2026
Tu exposes ton state en readonly typé Signal<T> et ça a l'air propre. Un cast d'une ligne rouvre .set(). Ce que asReadonly() verrouille vraiment.
26 juillet 2026
Ce que ton enum TypeScript émet en JavaScript, les pièges de réordonnancement et de reverse mapping, et les 3 patterns d'union de littéraux qui le remplacent.
26 juillet 2026
Ton computed() qui trie réécrit sa propre source, et rien dans le type ne l'en empêche. readonly, as const, et pourquoi DeepReadonly casse sur une Date.
26 juillet 2026
Ton type d'état a quatre champs optionnels, donc seize combinaisons dont la plupart n'ont aucun sens. Union discriminée : narrowing et 4 pièges du discriminant.
24 juillet 2026
Depuis Angular 20.2, les bindings animate.enter et animate.leave remplacent @angular/animations pour 95% des cas. Migration, pièges et bundle avant/après.
24 juillet 2026
Avec les signals partout, markForCheck() ressemble à un fossile. Presque : les 4 patterns où tu peux le supprimer, et le cas où il reste obligatoire.
22 juillet 2026
Tu passes ta propriété en signal, ton @HostBinding reste figé, sans erreur ni warning. Le silent bug, le workaround par getter, et la forme host: {}.
22 juillet 2026
Qui décide du markup, qui possède le comportement : l'arbre de décision entre ngTemplateOutlet, ngComponentOutlet et ViewContainerRef.createComponent.
22 juillet 2026
Tu empiles les @switch pour un dashboard dont la composition dépend de la donnée. ngComponentOutlet rend le bon composant, avec ses inputs et son injector.
20 juillet 2026
Migrer EventEmitter vers output() casse tes pipes RxJS : les 5 pièges de outputFromObservable et outputToObservable, et ce qu'il faut changer à la source.
17 juillet 2026
Tu appelles set() avec un nouvel objet, ton composant ne bouge pas. Ou pire : tu appelles set() avec la même valeur, et Angular re-render quand même. La fonction equal des signals est piégeuse dès que tu quittes les primitives. Tour des 5 pièges qui sabotent tes re-renders et les patterns pour reprendre la main sans casser les perfs.
16 juillet 2026
Le lazy loading Angular ne se limite pas à loadComponent. Les 5 niveaux, ce que chacun gagne sur ton bundle, et à quel réglage il ne sert plus à rien.
15 juillet 2026
Ton titre d'onglet est incohérent d'une page à l'autre ? Tu as éparpillé Title.setTitle() au lieu d'une TitleStrategy. Le pattern qui centralise tout.
13 juillet 2026
Ton composant affiche le mauvais utilisateur quand tu cliques vite. Les 4 pièges qui laissent passer une race condition malgré resource() et son abortSignal.
10 juillet 2026
Ton Field injecte le Validation du Form, et ça pète en NG0201 dès qu'il est projeté. La règle providers / viewProviders, et 4 patterns pour ne plus la subir.
8 juillet 2026
Tu actives le SSR et tu prends un ReferenceError: window is not defined. Les 4 erreurs classiques, et le fix avec PLATFORM_ID, DOCUMENT et afterNextRender.
6 juillet 2026
Ton <ng-content> casse le layout dès que le slot est vide, et l'ordre des select te joue des tours. 6 patterns de projection, tous vérifiés en test.
6 juillet 2026
Le reset CSS ne voit ni la Web Animations API, ni @angular/animations, ni le smooth scroll JS. Lire prefers-reduced-motion dans un signal SSR-safe.
5 juillet 2026
Séparer les tokens Tailwind v4 en deux couches : primitives dans @theme, sémantiques dans :root remappées par :has(), et les dérives qui ramènent du drift.
3 juillet 2026
Tu poses un effect() pour réagir à l'état du DOM ? C'est du JavaScript que le CSS ferait mieux. Cinq patterns :has() qui le remplacent, dès le SSR.
3 juillet 2026
Tes View Transitions Angular ne se voient pas ? Voici les 6 réglages à corriger, du view-transition-name au SSR, en passant par prefers-reduced-motion.
1 juillet 2026
Tu charges les CSS de toutes tes marques alors qu'une seule sert. Lazy-loader la feuille par resolver : 2,5 Mo de bundle en moins, sans flash non stylé.
1 juillet 2026
Ton DataTable réutilisable marche, mais côté consumer tout est typé any. Récupérer un context strictement typé avec ngTemplateContextGuard et les génériques.
1 juillet 2026
Stylelint ne lit pas les styles inline d'un composant Angular : mesurer la zone aveugle, choisir entre styles: et styleUrl, ou linter le CSS-in-TS.
1 juillet 2026
Tu passes tes revues à répéter les mêmes remarques CSS : px au lieu de rem, hex en dur. Comment Stylelint en fait des règles qui échouent la CI.
29 juin 2026
Les 4 patterns pour remplacer un BehaviorSubject par signal() et computed() dans tes services Angular, et les 2 cas où RxJS reste le bon choix.
26 juin 2026
Tu re-provides un service pour contourner une mauvaise instance reçue ? Le bon flag d'inject() suffit : optional, self, skipSelf et host, sur cas réels.
24 juin 2026
Tu mélanges signals et RxJS, et ton state clignote ou renvoie undefined. Les 6 pièges d'interop de toSignal() et toObservable(), et comment les désamorcer.
20 juin 2026
NG0100 ExpressionChangedAfterItHasBeenCheckedError : pourquoi cette erreur Angular surgit en dev, ce qui change en zoneless (v21) et comment la corriger.
19 juin 2026
Tu skippes l'auth avec un header X-Skip-Auth que ton interceptor supprime ensuite ? HttpContext le remplace par des tokens typés. 5 patterns et leurs tests.
18 juin 2026
parse() lance une exception, safeParse() retourne un résultat typé. Quand choisir l'un ou l'autre en Angular : API, HttpClient, httpResource, formulaires.
17 juin 2026
Ton SSR rend la page côté serveur, puis ton client refetch la même API au mount. Bravo, tu paies deux fois et ton Time To Interactive prend 800ms dans la tronche. Voici les 4 erreurs Angular 17+ qui causent le double-fetch en SSR et comment chaque correction prend moins de 5 lignes.
17 juin 2026
Vitest config Angular : anatomie de vitest.config.ts, fichier test-setup, environnement jsdom, couverture v8 et seuils. Le guide complet pour bien configurer.
17 juin 2026
Karma to Vitest : pourquoi et comment migrer tes tests Angular vers Vitest. Équivalences Jasmine, builder officiel, pièges zoneless et tableau comparatif.
16 juin 2026
Ton guard HTTP marche par les liens et part en 404 sur une URL collée : il est dans canMatch au lieu de canActivate. Diagnostic, cause et correctif.
16 juin 2026
Ton spinner tourne à l'infini sur un guard qui refuse ? Le cycle d'events du Router explique tout : la séquence, ce qui interrompt, et le loader qui tient.
12 juin 2026
Le track de @for décide si Angular réutilise tes lignes ou les recrée : 5 erreurs, de $index aux clés dupliquées, et le correctif de chacune.
10 juin 2026
Angular 19 déprécie APP_INITIALIZER. Migrer vers provideAppInitializer : contexte d'injection, gestion des erreurs, ordre d'exécution.
7 juin 2026
Un formulaire présentationnel partagé, deux conteneurs distincts : le critère qui décide si create et edit partagent la forme, et les 4 pièges du pattern.
5 juin 2026
Pourquoi passer tes guards, resolvers et interceptors Angular en fonctions : CanActivateFn, ResolveFn, HttpInterceptorFn, tree-shaking, factories, tests.
5 juin 2026
@let déclare une variable dans le template, stable en Angular 19. 5 patterns pour supprimer tes computed() de présentation, et 4 pièges.
5 juin 2026
Angular 22 ajoute @Service, plus ergonomique que @Injectable pour 90 % de tes services. Singleton root, inject() obligatoire, et les cas qui résistent.
5 juin 2026
knip trouve le code mort, mais sur Angular SSR + Nx il flague tes entrypoints serveur. La config qui sépare le signal du bruit, et la gate CI qui va avec.
3 juin 2026
Ce qui change en Angular 22 : OnPush par défaut, Signal Forms stables, FetchBackend par défaut, @Service et injectAsync, compilateur strict et APIs supprimées.
2 juin 2026
NG0203 te tombe dessus dès que tu déplaces un inject() dans un setTimeout, un subscribe ou après un await. Les 4 scénarios, et comment les corriger.
27 mai 2026
Tes images sont presque toujours l'élément LCP, et souvent ce qui fait chuter ton score. Les 5 pièges de NgOptimizedImage, avec le before/after.
22 mai 2026
Tu écris encore input() + output() + emit() pour un simple [(banana)] ? model() supprime 60 % de ce boilerplate. Forme required, alias, et les 5 pièges.
20 mai 2026
Quand utiliser afterNextRender() et afterEveryRender() au lieu de ngAfterViewInit ou setTimeout(0) : phases DOM, SSR, zoneless et différence avec effect().
17 mai 2026
Attacher des directives sur le host d'un composant avec hostDirectives : extraire un comportement dupliqué, aliaser ses inputs, composer plusieurs directives.
15 mai 2026
L'astuce CSS :host { display: contents } en Angular : pourquoi c'est tentant, pourquoi c'est souvent un wrapper qui s'ignore, et quand c'est légitime.
13 mai 2026
Angular 19 remplace ControlValueAccessor par FormValueControl : zéro provider, zéro callback, un simple model(). Guide de migration avant/après.
13 mai 2026
Quand remplacer un effect() de synchronisation par linkedSignal(), stable depuis Angular 20 : forme courte, forme longue avec previous, sélection et pagination.
9 mai 2026
Remplacer le trio Subject + takeUntil + ngOnDestroy par takeUntilDestroyed() : contexte d'injection, erreur NG0203, DestroyRef dans un service, toSignal().
4 mai 2026
Quand remplacer effect() par computed(), pourquoi untracked() cache un mauvais découpage, comment détruire un effect dans un service et son vrai timing.
29 avril 2026
Retour d'expérience sur la skill open-source impeccable : les commandes lancées, le score d'audit passé de 10/20 à 19/20, et les bugs vus en preview.
24 avril 2026
viewChild(), viewChildren() et contentChild() remplacent @ViewChild depuis Angular 17.2 : refs réactives, migration pas à pas et code DOM SSR-safe.
17 avril 2026
Charger tes composants à la demande sans toucher au routing : les triggers @defer viewport, idle et interaction, le prefetch, et le piège du SSR.
16 avril 2026
Compile-time ou runtime, lazy loading, SSR, API Signals : les critères pour choisir entre @angular/localize, ngx-translate et Transloco sur ton projet.
14 avril 2026
git worktree ouvre plusieurs branches dans des dossiers séparés qui partagent le même .git : commandes, cas d'usage (hotfix, review de PR) et limites.
14 avril 2026
Comment générer un flux RSS 2.0 statique à partir d'articles markdown sur un blog Angular SSG - script TypeScript, intégration au build, pièges à éviter.
8 avril 2026
Les APIs Signals d'Angular 17 à 21 en fiche mémo : signal, computed, effect, input, output, model, linkedSignal, resource, httpResource et interop RxJS.
10 mars 2026
Ce que le template Angular a gagné de la v17 à la v21.2 : control flow, @let, template literals, et le schematic qui migre l'ancienne syntaxe, à un track près.
26 février 2026
Ce qui change en Angular 21.2 : support TypeScript 6, Signal Forms matures, @switch exhaustifs, instanceof et arrow functions dans les templates.
4 février 2026
Quand mettre httpResource dans un composant, dans un service, ou lui préférer HttpClient et un repository : trois niveaux selon la complexité réelle.
18 janvier 2026
Découvre comment rendre tes InjectionToken Angular tree-shakable avec providedIn et factory. Moins de boilerplate, bundle plus léger, code plus propre.
15 janvier 2026
Angular 21.1 en pratique : fall-through de @switch, spread dans les templates, renommage de [field] en [formField] pour Signal Forms et isActive() standalone.
6 janvier 2026
Utiliser any en TypeScript, c'est comme conduire sans ceinture. Découvre comment unknown, les type guards et Zod peuvent sauver ton code (et ta carrière).
13 décembre 2025
Ce que seul type sait faire, ce que seule interface sait faire, l'argument sémantique données contre contrats, et la règle ESLint qui fige le choix.
10 décembre 2025
Comment identifier un chunk anormal avec esbuild-visualizer et passer un bundle Angular de plus d'1 Mo à 750 Ko en remplaçant Zod par zod/mini.
6 décembre 2025
Ce que ng new génère en Angular 21 : Tailwind intégré, Vitest par défaut, zoneless sans config, provideHttpClient optionnel, et le linter qui change.
27 novembre 2025
Modernise tes tests Angular avec inputBinding et outputBinding : moins de fixture.detectChanges(), plus de signaux et des specs plus déclaratives.
10 novembre 2025
Créer un input custom compatible formControlName et ngModel : les 4 méthodes de ControlValueAccessor, le provider NG_VALUE_ACCESSOR et les erreurs classiques.
3 novembre 2025
Histoire d'un bug de scroll Angular causé par un simple overflow-y: auto. Comment j'ai passé 2 heures à chercher un problème que j'avais créé moi-même.
27 octobre 2025
Quand utiliser input(), @Attribute() ou InjectionToken dans tes composants : données réactives, valeurs statiques, config globale et pattern hybride.
25 octobre 2025
Du double subscribe à httpResource : 5 façons de charger tes données Angular avec switchMap et rxResource, et le réglage qui évite les requêtes parasites.
20 octobre 2025
Éliminer les div wrappers de tes composants Angular : styler l'élément host avec :host, définir son display, poser des host bindings, et les cas d'exception.
13 octobre 2025
Ton || écrase le 0 et la chaîne vide que ton utilisateur a saisis. Ce que ?? change vraiment : table de vérité, opérateur ??= et les pièges à éviter.
10 octobre 2025
Pourquoi une app SSR casse avec NG0401 après le passage à Angular 20.3, et comment corriger main.server.ts en passant BootstrapContext à bootstrapApplication.
22 septembre 2025
Chaque principe SOLID illustré en Angular moderne (Signals, control flow, InjectionToken) avec '❌ mauvaise façon' vs '✅ bonne façon' pour guider ta refacto.
19 septembre 2025
Brancher un composant Angular sur un Port et deux Adapters interchangeables (HTTP et InMemory) : contrat, providers, InjectionToken ou classe abstraite.
11 septembre 2025
Nx et Rspack sur un projet Angular : ce que change le bundler Rust, comment configurer ou migrer une app existante, et quand Webpack ou Vite suffisent encore.
8 septembre 2025
Installer Zod, choisir entre parse et safeParse, valider une réponse HttpClient ou httpResource, inférer tes types avec z.infer et transformer tes données.
29 août 2025
Installer json-server, lancer Angular et l'API en parallèle, régler les CORS, simuler des erreurs, puis savoir quand basculer vers MSW ou Mirage.js.
25 août 2025
Pourquoi cette erreur survient dans Angular v20, comment la diagnostiquer et 3 façons propres de la corriger (providedIn, providers de route, provider global).
22 août 2025
Route dynamique, segment hybride, UrlMatcher custom et data resolver : les 4 patterns de routing Angular pour des URLs propres, et leurs pièges.
15 août 2025
Le style guide Angular v20 (par feature, inject(), protected) et les pièges de la migration v19 vers v20 sur stack Nx + Vitest, côté tests.
6 août 2025
Retour d'expérience sur la migration vers Tailwind CSS v4 avec un projet Nx + Angular + Vitest. Symptômes, débug et fix.
6 août 2025
Centraliser tes liens de navigation dans un tableau TypeScript, les rendre avec une boucle @for et routerLinkActive, et savoir quand { exact: true } s'impose.
17 juillet 2025
Ton backend te répond toujours en anglais ? Centralise l'en-tête Accept-Language dans un HttpInterceptor fonctionnel, depuis Transloco ou LOCALE_ID.
9 juillet 2025
Transloco Angular : ajoute le multilingue (i18n) à un projet standalone moderne, avec une configuration clean et un exemple pas à pas.
27 juin 2025
Comprenez la différence entre composants intelligents et composants présentiels, et structurez vos applications Angular proprement.
25 juin 2025
Fiche mémo Angular : Subject et BehaviorSubject, opérateurs RxJS de transformation et de filtrage, signal, computed, effect, interop et API resource.
25 juin 2025
Une grille de décision simple pour savoir si votre projet Angular a vraiment besoin d’un store comme NgRx ou Signal Store.
12 juin 2025
Faut-il utiliser le constructor ou ngOnInit dans un composant Angular ? Ce guide rapide clarifie leur rôle et t’aide à faire le bon choix.
6 juin 2025
Tu remplaces Karma par Vitest en Angular 20 : désinstallation, vitest.config, test-setup, tsconfig.spec et angular.json, étape par étape.
6 juin 2025
Un retour d'expérience concret sur l'utilisation du Signal Store de NgRx dans une reproduction simplifiée d'EasyAngularKit.
27 mai 2025
withComponentInputBinding injecte params, queryParams et data de route dans les input() d’un composant. Le piège des valeurs par défaut écrasées.
25 mai 2025
Retour d’expérience sur la première édition de NgBaguette, l'évènement Angular 100% francophone. Talks, rencontres et coups de cœur.
25 janvier 2025
Angular 21 active le zoneless par défaut. Les 4 phases de migration - OnPush, signals, provideZonelessChangeDetection, retrait de Zone.js - et les pièges.
Suite d'outils pour développeurs Angular francophones. Apprends, modernise tes réflexes, audite ta codebase.
© 2026 AngularKit. Tous droits réservés.