es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo preseleccionar un valor usando el desplegable “Datalist” en Angular?

Tengo un menú desplegable editable en el cual necesito que el valor predeterminado se autocomplete desde una plantilla.
El valor predeterminado se obtiene de “this.Model.Application.environment” que tiene el valor “dev”. El siguiente código me proporciona un menú desplegable editable, pero necesito seleccionar previamente el valor de la plantilla. El [(ngModel)]=”this.Model.Application.environment” en muestra el valor predeterminado (“dev”) en la página, pero no muestra los otros valores del menú desplegable (“qa/prod”) y tampoco es editable. Así que eliminé ngModel de la etiqueta . Por favor, ayúdame a resolverlo.
Los requisitos son:
1. menú desplegable editable,
2. seleccionar previamente el valor,
3. mostrar otros valores en el menú desplegable. (1 y 3 funcionan ahora)

<div class="select-editable">
    <input list="envVal" id="environment" name="environment" #select="" class="form-control" placeholder="Seleccione la versión de la imagen base" size="medium" style="width:326px; padding-top:5px;max-width: 100%;" (change)='updatebaseimageversion($event)'>
    <datalist id="envVal" [(ngmodel)]="this.fmGeneratorModel.Application.environment">
        <ng-container *ngfor="let env of environmentList">
            <option [ngvalue]="env" [selected]="env === 'dev'">{{env}}</option>
        </ng-container>
    </datalist>
</div>
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para preseleccionar un valor en un menú desplegable editable en Angular, puedes usar el atributo [value] y enlazarlo a la propiedad que contiene el valor predeterminado. Aquí tienes un fragmento de código actualizado que debería cumplir con los requisitos:

    <div class="select-editable">
      <input list="envVal" id="environment" name="environment" #select="" class="form-control" placeholder="Seleccionar versión de la imagen base" size="medium" style="width:326px; padding-top:5px;max-width: 100%;" [value]="this.Model.Application.environment" (change)='updatebaseimageversion($event)'>
      <datalist id="envVal">
        <ng-container *ngfor="let env of environmentList">
          <option [ngvalue]="env">{{env}}</option>
        </ng-container>
      </datalist>
    </div>
    

    Al agregar el atributo [value] a la etiqueta de entrada, estamos estableciendo el valor predeterminado en la propiedad que contiene el valor que queremos preseleccionar. Y al eliminar [(ngModel)], permitimos que el menú desplegable sea editable al tiempo que conservamos el valor seleccionado.

    ¡Espero que esto te sea útil!

Comments are closed.