将所选选项传递给控制器​​功能

时间:2017-06-21 19:18:33

标签: javascript html angularjs html5

我有一张表有一些输入和角度模型。

                            <td>
                                <select class="form-control" id="">
                                    <option ng-model="mfrNo" ng-repeat="manufacturer in manufacturers" value="mfrNo">{{manufacturer.SUPP_NAME}} [{{manufacturer.SUPP_NO}}]</option>
                                </select>
                            </td>
                            <td>
                                <input type="text" ng-model="newCon" class="form-control" name="new_contract_number" value="" maxlength="500"/>
                            </td>
                            <button type="button" class="btn btn-default" data-dismiss="modal" data-ng-click="reassignContract()">Reassign</button>

在我的控制器中,我想检索选择/输入的值。

    $scope.reassignContract = function () {
        console.log($scope.newCon);
        console.log($scope.mfrNo);

    };

第一个模型newCon正确传递文本输入。但第二个,mfrNo输出undefined / null。

为什么这个模型/对象没有通过?我做错了什么,如何解决?

1 个答案:

答案 0 :(得分:3)

ngModel应该放在<select>而不是<option>上。您还应该考虑使用ngOptions

所以:

<td>
    <!-- ngModel should go here -->
    <select ng-model="mfrNo" class="form-control" id="">
        <!-- Instead of here -->
        <option ng-repeat="manufacturer in manufacturers" value="mfrNo">{{manufacturer.SUPP_NAME}} [{{manufacturer.SUPP_NO}}]</option>
    </select>
</td>

此外,您要将value的{​​{1}}设置为&#34; mfrNo&#34;。我不知道这是否是故意的,但这意味着<option>的值将是$scope.mfrNo。我认为你的意思是将其设置为"mfrNo"的其他值。使用$scope插值。