New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
model()
should support a narrower output type
#55754
Comments
This is a duplicate of #55166 which has the previous discussion (which concluded that |
model()
should support a narrower output type
I'm going to steal this issue and refocus it a bit. |
But how would you transform the string to the number for input values? At the end the component internally only want number and will always emit number. Only the outside can provide strings. |
You can use a |
But wouldn't something like |
@alxhub Just adding that using input and output we can do: value = input(2, { transform: fn });
valueChange = output<number>(); The only downside is we can't change it from inside and the outside must implement the output and input or two way binding. value = model(2, {inputTansform: fn}); Which does exactly the same but with model added features. |
Which @angular/* package(s) are relevant/related to the feature request?
core
Description
Currently input supports transform but model doesn't although it can be very handy.
Proposed solution
Allow
model(2, {transform: fn})
For example if I can accept
number | '${number}'
from outside but emit onlynumber
.It allows the user to either use:
modelName="8"
without two way binding[(modelName)]="value"
with two way binding while value is onlynumber
Alternatives considered
Probably use
model<number | '${number}'>(2)
. But then inside I need to run the transform function myselfThe text was updated successfully, but these errors were encountered: