Esta es la solución más exacta que encomtrarás dar, sin embargo estúdiala detenidamente y valora si se puede adaptar a tu proyecto.
interface
Define una interfaz que actúa como puente entre la API de formas angulares y un elemento nativo en el DOM.
Ver más…
interfaceControlValueAccessorwriteValue(obj:any):voidregisterOnChange(fn:any):voidregisterOnTouched(fn:any):voidsetDisabledState(isDisabled:boolean)?:void
Implementaciones de clases
CheckboxControlValueAccessor
DefaultValueAccessor
NumberValueAccessor
RadioControlValueAccessor
RangeValueAccessor
SelectControlValueAccessor
SelectMultipleControlValueAccessor
Ver también
-
DefaultValueAccessor
Descripción
Implemente esta interfaz para crear una directiva de control de formulario personalizada que se integre con formularios angulares.
Métodos
writeValue () | |||
---|---|---|---|
Escribe un nuevo valor en el elemento. |
|||
|
obj |
any |
El nuevo valor del elemento |
Devoluciones
void
La API de formularios llama a este método para escribir en la vista cuando se solicitan cambios programáticos de modelo a vista.
Notas de uso
Escribe un valor en el elemento.
El siguiente ejemplo escribe un valor en el elemento DOM nativo.
writeValue(value:any):voidthis._renderer.setProperty(this._elementRef.nativeElement,'value', value);
registerOnChange () | |||
---|---|---|---|
Registra una función de devolución de llamada que se llama cuando cambia el valor del control en la interfaz de usuario. |
|||
|
fn |
any |
La función de devolución de llamada para registrarse |
Devoluciones
void
La API de formularios llama a este método durante la inicialización para actualizar el modelo de formulario cuando los valores se propagan de la vista al modelo.
Al implementar el registerOnChange
en su propio descriptor de acceso de valor, guarde la función dada para que su clase la llame en el momento apropiado.
Notas de uso
Almacenar la función de cambio
El siguiente ejemplo almacena la función proporcionada como un método interno.
registerOnChange(fn:(_:any)=>void):voidthis._onChange = fn;
Cuando el valor cambia en la interfaz de usuario, llame a la función registrada para permitir que la API de formularios se actualice:
host:'(change)':'_onChange($event.target.value)'
registerOnTouched () | |||
---|---|---|---|
Registra una función de devolución de llamada a la que llama la API de formularios en la inicialización para actualizar el modelo de formulario en caso de desenfoque. |
|||
|
fn |
any |
La función de devolución de llamada para registrarse |
Devoluciones
void
Al implementar registerOnTouched
en su propio descriptor de acceso de valor, guarde la función dada para que su clase la llame cuando el control deba considerarse borroso o “tocado”.
Notas de uso
Almacenar la función de devolución de llamada
El siguiente ejemplo almacena la función proporcionada como un método interno.
registerOnTouched(fn:any):voidthis._onTouched = fn;
En desenfoque (o equivalente), su clase debe llamar a la función registrada para permitir que la API de formularios se actualice:
host:'(blur)':'_onTouched()'
setDisabledState () | |||
---|---|---|---|
Función a la que llama la API de formularios cuando el estado del control cambia ao desde ‘DISABLED’. Dependiendo del estado, habilita o deshabilita el elemento DOM apropiado. |
|||
|
isDisabled |
boolean |
El estado deshabilitado para establecer en el elemento. |
Devoluciones
void
Notas de uso
El siguiente es un ejemplo de cómo escribir la propiedad deshabilitada en un elemento DOM nativo:
setDisabledState(isDisabled:boolean):voidthis._renderer.setProperty(this._elementRef.nativeElement,'disabled', isDisabled);
Puedes confirmar nuestra publicación dejando un comentario y dejando una puntuación te damos la bienvenida.