2015-09-09 4 views
0

Я пытаюсь создать раскрывающееся меню выбора, которое моделируется для определенного параметра внутри объекта, который является частью массива, однако я хочу, чтобы параметр «null value» фактически имел значение (или просто возможность вставки дополнительной опции в раскрывающемся списке).Опция пустого значения в выпадающем списке выбора

<select class="form-control" ng-model="question.defaultGoToQuestion" ng-options="question.sequence as question.questionHeading for question in survey.questions"> 
    <option value="-1">Finish</option> 
</select> 

Однако угловой просто игнорирует внутри выбора тега, если оно не имеет нулевое значение value="". Как я могу всегда использовать опцию с value of -1 независимо от того, что находится внутри массива survey.questions?

Я также забыл упомянуть, что -1 должен быть целым числом, чтобы модель всегда могла ассоциироваться с целыми значениями, а не с строками.

Быстрое обновление

Я хотел бы иметь что-то почти так же, как это:

<select class="form-control" ng-model="question.defaultGoToQuestion" ng-options="question.sequence as question.questionHeading for question in survey.questions"> 
    <option value="">Finish</option> 
</select> 

Только мне нужно закончить, чтобы иметь значение -1 в опции финишной.

+0

Какие варианты вы хотите, чтобы быть там в поле выбора? – Rayon

+0

В поле выбора мне нужно посмотреть список вопросов опроса + вариант, который говорит о завершении и имеет значение «-1». Стоит отметить, что опрос может быть изменен с помощью пользовательского интерфейса, и переменная $ scope.survey обновляется соответствующим образом. (Я буду обновлять вопрос, так как я не знаю, как отправлять код в комментарии) –

ответ

0

Если вы используете что-то вроде этого, чтобы указать пары ключ/значение, вы можете присвоить нужные значения:

<select ng-model="selectedOption" ng-options="option for (key, value) in options"></select> 

JavaScript:

$scope.options = { 
    'select': -1, 
    'one': 1, 
    'two': 2, 
    'three': 3, 
    'four': 4, 
    'five': 5, 
    'six': 6 
    }; 

$scope.selectedOption = $scope.options[0]; 
+0

Проблема с этим - изменение параметров, и я уже пытаюсь убрать все мои объекты с моего контроллера/фабрики. Я просто хочу повторно использовать информацию, которую у меня уже есть, с дополнительным

0

Это немного противоречит интуитивным, что вы нужно, чтобы модель имела значение, но не хочет, чтобы она определялась в структуре данных.

один из способов, вы можете добавить элемент в начало вашего массива данных с использованием unshift

$scope.survey.questions.unshift({sequence: -1, questionHeading: 'Finish'}); 
$scope.question.defaultGoToQuestion = $scope.survey.questions[0]; 
+0

Кто-то упоминал этот метод раньше, но кажется, что они удалили свой ответ. Похоже, это может быть так. Единственная проблема, с которой я сталкиваюсь, заключается в том, что эти вопросы отображаются на странице и добавление вопроса в массив также означает, что она будет видна, если я специально не нацеливаю ее на то, чтобы этого не было. Я думаю, что это не идеальный способ в моей голове, но, возможно, я упрощаю вещи. Что странно для меня, так это то, что опция «по умолчанию» может быть перезаписана угловым способом, но она должна иметь нулевое значение. –

+1

Если вы хотите, чтобы по умолчанию значение углового выбора заполнителя (т.е. опция исчезает после выбора пользователем значения), вы считали установку -1 только тогда, когда вы собираетесь отправить? – Icycool

+0

Я думаю, что вы правы на деньги, и я думаю, что это будет решение прямо сейчас. При отправке, если значение равно null, я изменим его на -1. –

Смежные вопросы