$scope не собирает значение ng-model в элементе select

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

Вот HTML-код:

<div ng-form="amountForm" class="form-group" id="inputField">
    <input value="1" type="number" placeholder="1" ng-model="itemAmount" ng-maxlength="2" required>
</div>
<div ng-form="nameForm" class="form-group">
    <input value="" type="text" placeholder="Name of Item" ng-model="itemName" ng-maxlength="10" required>
</div>
<select ng-model="currentDependent">
    <option ng-repeat="item in items" value="{{item.dependentOn}}" ng-selected="currentDependent == item.dependentOn">{{item.name}}</option>
</select>

Вот Angular (работает $scope.itemAmount и $scope.itemName):

$scope.items = [];

$scope.addItem = function () {
    console.log($scope.itemAmount + ", " + $scope.itemName + ", " + $scope.currentDependent);

    $scope.items.push({
        amount: $scope.itemAmount,
        name: $scope.itemName,
        showMe: false,
        dependentOn: $scope.currentDependent
    });
};

Кажется, на консоли ничего не печатается:

Так что не работает только ng-модель в Select. Выпадающий список показывает правильные значения. Как получить значение, выбранное в раскрывающемся списке, для печати в консоли?

Примечание. Я упустил код http.post для ясности.

2 ответа

Решение

Вы должны использовать itemName (или другое свойство элемента) для отслеживания зависимости.

<select ng-model="currentDependent">
    <option ng-repeat="item in items" value="{{item.name}}">{{item.name}}</option>
</select>

Мне недавно пришлось использовать выпадающее меню в одном из моих проектов, и вот как я лично это сделал

http://jsfiddle.net/halirgb/Lvc0u55v/

Не забудьте открыть консоль, чтобы увидеть значения!

Сначала я подумал, что это хорошая идея, чтобы просто ng-repeat мои варианты. Но потом я понял, используя ng-options удобнее, когда вы освоитесь.

Этот ТАК вопрос объясняет это очень хорошо!

Другие вопросы по тегам