mirror of
https://github.com/angular/angular.git
synced 2026-09-14 13:54:52 +08:00
ccb09b4558
The current behavior of `routerLink` for `null` and `undefined` inputs is to treat the input the same as `[]`. This creates several unresolvable issues with correctly disabling the links because `commands = []` does _not_ behave the same as disabling a link. Instead, it navigates to the current page, but will also clear any fragment and/or query params. The new behavior of the `routerLink` input will be to completely disable navigation for `null` and `undefined` inputs. For HTML Anchor elements, this will also mean removing the `href` attribute. Fixes #21457 Fixes #13980 Fixes #31154 BREAKING CHANGE: Previously `null` and `undefined` inputs for `routerLink` were equaivalent to empty string and there was no way to disable the link's navigation. In addition, the `href` is changed from a property `HostBinding()` to an attribute binding (`HostBinding('attr.href')`). The effect of this change is that `DebugElement.properties['href']` will now return the `href` value returned by the native element which will be the full URL rather than the internal value of the `RouterLink` `href` property. PR Close #43087
Angular Router
Managing state transitions is one of the hardest parts of building applications. This is especially true on the web, where you also need to ensure that the state is reflected in the URL. In addition, we often want to split applications into multiple bundles and load them on demand. Doing this transparently isn’t trivial.
The Angular router is designed to solve these problems. Using the router, you can declaratively specify application state, manage state transitions while taking care of the URL, and load components on demand.
Guide
Read the dev guide here.