You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Two-way binding documentation is missing important information #71796
When it comes to two-way binding (using the model signal), arguably the most important piece of information is that a value = model<string>(); declared in a child component can be used in the parent's template as either:
Banana-in-a-box: [(value)]="someValue"
A pair of input and output: [value]="someValue" (valueChange)="onSomeValueChanged($event)"
And in the second case, we can additionally assume that whenever someValue changes in the parent component, and gets passed to child, onSomeValueChanged() will not immediately be called back on the parent component - which is critical for the "Data Down, Actions Up (DDAU)" / "unidirectional data flow" principle.
Unfortunately, learning this from the Angular documentation at https://angular.dev/ is not easy. The following links contain just small pieces of this puzzle:
And even putting them all together doesn't fully convey the message described above.
Can we please update the documentation to describe the message from the top of this ticket, in a single place, in a brief way, with a good, illustrative example? (preferably instead of some of the existing content, which is rather unhelpful)
Two way binding is a shorthand to simultaneously bind a value into an element, while also giving that element the ability to propagate changes back through this binding.
This should imho is enough to infer everything. Don't you agree?
Two way binding is a shorthand to simultaneously bind a value into an element, while also giving that element the ability to propagate changes back through this binding.
This should imho is enough to infer everything. Don't you agree?
The statements "bind a value into an element" and "propagate changes back through this binding" are vague, and do not convey the precise information described at the top of this ticket. It may be a decent one-sentence introduction into this topic, but it's not a sufficient explanation of the entire idea and its key details.
I know plenty of people with years of Angular experience, who do not know these things. So I guess we, as the Angular community, are not doing enough to share this information. Putting it in the documentation would be a step in the right direction.
Activity
JeanMeche commentedon Nov 3, 2026
Let me challenge you a bit on this.
The 2-way binding guide does mention
This should imho is enough to infer everything. Don't you agree?
bart113 commentedon Nov 4, 2026
The statements "bind a value into an element" and "propagate changes back through this binding" are vague, and do not convey the precise information described at the top of this ticket. It may be a decent one-sentence introduction into this topic, but it's not a sufficient explanation of the entire idea and its key details.
I know plenty of people with years of Angular experience, who do not know these things. So I guess we, as the Angular community, are not doing enough to share this information. Putting it in the documentation would be a step in the right direction.