$ scope没有在select元素中获取ng-model值

时间:2016-03-02 00:40:30

标签: angularjs data-binding angular-ngmodel angularjs-select

我试图为从ng-model接收它的变量添加一个值。

这是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
    });
};

控制台上似乎没有打印出来:

enter image description here

所以唯一不起作用的是选择中的ng-model。下拉列表显示正确的值。如何在下拉列表中选择要在控制台中打印的值?

注意:为了清楚起见,我遗漏了http.post代码。

2 个答案:

答案 0 :(得分:1)

您应该使用itemName(或其他项属性)来跟踪依赖项。

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

答案 1 :(得分:1)

我最近在我的一个项目中使用了一个下拉菜单,这就是我亲自做的事情

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

不要忘记打开控制台以查看值!

起初,我认为仅仅ng-repeat我的选择是一个好主意。但是当我得到它时,我发现使用ng-options会更方便。

This所以问题解释得非常好!