ng-repeat и повторенная стоимость

У меня есть следующий код:

var options = ["option1", "option2", "option3"]

<div ng-repeat="fir in getTimes(3)">
<select ng-model="spAnswer[$index].importance">
    <option ng-repeat="option in options" value="{{option}}">
        {{option}}
    </option>
</select>
</div>

Если у меня есть 3 selects: если во втором select я выбрал option1, в первом и третьем они были бы должны появляться у меня option2 и option3 чтобы мочь выбирать.

0
задан 25.03.2017, 19:26
0 ответов

Вместо того, чтобы использовать

<option ng-repeat="option in options" value="{{option}}">

создай функцию, которая возвращала бы тебе выданные options. В драйвере:

function getOptions(index){
// Si index es mayor que 0, es el segundo o tercer select y mira qué valor tiene el anterior.
  if(index > 0){
    var excluido = spAnswer[index-1].importance;
    // Devuelve todas las opciones menos la excluida.
    return options.filter(function(o){
      return o !== excluido;
    });
  }else{
    // Es el primer select, devuelve todas las opciones.
    return options;
  }
}

Тогда, позвони в функцию, которая производит выборы в ngrepeat:

<option ng-repeat="option in getOptions($index)" value="{{option}}">
0
ответ дан 03.12.2019, 17:30
  • 1
    я издал вопрос, если он может помогать мне –  30.01.2017, 18:28
  • 2
    И я издал ответ в отражая изменения :) –  31.01.2017, 11:44
  • 3
    как я могу называть getoptions?, он не звонит в метод я был должен менять это в $ scope.getOptions=function (index) { но просвет return не стоит в этом случае –  31.01.2017, 14:29
  • 4
    решенный, спасибо –  31.01.2017, 17:49
  • 5
    Sí если ты используешь $scope, у тебя есть, что reescribirlo таким образом, и return sí что стоит в этом случае. Если не зависят из-за команды select, вместо того, чтобы смотреть предыдущую стоимость tendrá s, что делать отдельный список с выборами, которые уже были выбраны. –  31.01.2017, 18:05