Default value in ng options with condition

The question is very simple: ¿How to set the init value for my ng options? The problem is that the default value must be a specific value, in order to find out which specific value I need a condition for.

HTML

<select ng-model="selectedOption1" ng-options="horario for horario in dia.horarios" ng-change="vm.guardarHorarioInicial($index, selectedOption1)">

My json is next

enter image description here

For each parameter, I need to check if the value of the valorInicio parameter is equal. If the option is equal to the value of valorInicio, I need to select this default value.

In the previous format, I used:

ng-selected="dia.valorInicio == horario" 

And it works great.

But now I do not have ng-selected.

So ... Can someone help me?

Thank!

// EDIT //

HTML

<ion-view view-title="Cambiar horarios">
<ion-content>
    <div class="list card" ng-repeat="dia in vm.dias">
        <div class="item item-divider" align="center">
            {{dia.nombre}}
        </div> 
        <div class="list">
            <label class="item item-input item-select">
                <div class="input-label">
                    Primer turno
                </div>
                <select ng-model="selectedOption1" ng-options="horario for horario in dia.horarios" ng-change="vm.guardarHorarioInicial($index, selectedOption1)">
                </select>
                <!--<select>
                    <option ng-model="selectedOption1" ng-repeat="horario in dia.horarios" ng-selected="dia.valorInicio == horario" ng-change="vm.guardarHorarioInicial($index, selectedOption1)" value="{{horario}}">{{horario}}</option>
                </select>-->
            </label>
            <label class="item item-input item-select">
                <div class="input-label">
                    Último turno
                </div><!--
                <select ng-model="selectedOption2" required="required" ng-init="'09:00'=='09:00'" ng-options="horario as horario for horario in dia.horarios" ng-change="vm.guardarHorarioFinal($index, selectedOption2)"    >
                </select>-->
                <select>
                    <option ng-model="selectedOption2" ng-repeat="horario in dia.horarios" ng-change="vm.guardarHorarioFinal($index, selectedOption2)" ng-selected="dia.valorFin == horario" value="{{horario}}">{{horario}}</option>
                </select>
            </label>
        </div>
    </div>
    <div class="padding-horizontal"><button class="button button-block button-positive" ng-click="vm.guardarHorarios()"> Guardar horarios </button></div>
</ion-content>
</ion-view>

controller

(function() {
'use strict';

angular
    .module('example.cambiarhorarios')
    .controller('CambiarHorariosController', CambiarHorariosController);

CambiarHorariosController.$inject = ['$state', '$scope', 'cambiarHorariosService'];

function CambiarHorariosController($state, $scope, cambiarHorariosService ) {
    var vm = this;
    vm.estado = false;
    vm.estadoCambiarHorarios = false;
    vm.dias = [];
    vm.mensajeError = '';
    vm.cargarHorarios = cargarHorarios;
    vm.guardarHorarioInicial = guardarHorarioInicial;
    vm.guardarHorarioFinal = guardarHorarioFinal;
    vm.horariosInicial = [];
    vm.horariosFinal = [];


    inicializar();

    function inicializar() {
        cargarHorarios();

    }

    //guardar todos los horarios del primer turno
    function guardarHorarioInicial(index){
        //horariosInicial[index] = 
        console.log("indexxxxxx:"+index);
        console.log("Option 1 : " + $scope.selectedOption1);
        debugger;
        //vm.horarios[index] = vm.test[index];

    }


    function cargarHorarios() {
        vm.estado = false;
        vm.estadoCambiarHorarios = false;
        cambiarHorariosService.obtenerHorariosComplejo()
            .then(function(dias) {
                vm.dias = dias;
                mostrarCambiarHorarios(true);
            })
            .catch(function(e){
                mostrarCambiarHorarios(false);
                vm.mensajeError = e.concat(" Toca para volver a cargar.");
        });
    }

    //funcion para visualizar los datos o mostrar un error
    function mostrarCambiarHorarios(estado){
        if(estado == true){
            vm.estado = true;
        }
        else{
            vm.estado = false;
            vm.estadoCambiarHorarios = true;
        }
    }

    //guardar todos los horarios del primer turno
    function guardarHorarioInicial(index, hora){
        vm.horariosInicial[index] = hora;
        console.log(vm.horariosInicial);
    }

    //guardar todos los horarios del último turno
    function guardarHorarioFinal(index, hora){
        vm.horariosFinal[index] = hora;
        console.log(vm.horariosFinal);
    }
}
})();
+4
source share
2 answers

! ng-model ( ) json, .

, , json, angular , .

select ng-model="dia.valorInicio" ng-options="horario for horario in dia.horarios" ng-change="vm.modificarHoraInicio($index, dia.valorInicio)"></select>


<select ng-model="dia.valorFin" ng-options="horario for horario in dia.horarios" ng-change="vm.modificarHoraFin($index, dia.valorFin)"></select>

@AndersVestergaard , .

!

0

Option1 init, horario. , :

if(conditionForInitSelectedObject == horarios[i]){
  $scope.selectedOption1 = horarios[i];        
}

:

function cargarHorarios() {
    vm.estado = false;
    vm.estadoCambiarHorarios = false;
    cambiarHorariosService.obtenerHorariosComplejo()
        .then(function(dias) {
            vm.dias = dias;

            for(var i = 0; i < dias.horario.length; i++){
               if(dias.horario[i] == dia.valorInicio){
                 $scope.selectedOption1 = dias.horario[i];
               }

               if(dias.horario[i] == dia.valorFin ){
                 $scope.selectedOption2 = dias.horario[i];
               }

            }

            mostrarCambiarHorarios(true);
        })
        .catch(function(e){
            mostrarCambiarHorarios(false);
            vm.mensajeError = e.concat(" Toca para volver a cargar.");
    });
}

2

, , , .

1: ng-selected, ng-repeat

2: , , html, ngModel , :

<select ng-model="dia.Selected" ng-options="horario for horario in dia.horarios" ng-change="vm.guardarHorarioInicial($index, selectedOption1)">

init, . : https://plnkr.co/edit/UHasuk0RvYCS8omzlsg4?p=preview

+1

Source: https://habr.com/ru/post/1665173/


All Articles