2

HTML:

<div ng-controller="TestController" >
    <form name="test_form" ng-submit="submit()">
        <input type="text" name="some_name" ng-model="form_data.some_name" required>

        <ng-form ng-repeat="key in keys" name="keyForm">
            <input type="text" name="data_input" ng-model="form_data.data_input" required>
        </ng-form>  

        <a ng-click="addKey()">NEW KEY</a>
    </form>
</div>

JS:

app.controller('TestController', function TestController($scope){

    $scope.keys = [];

    $scope.addKey = function() {
        $scope.keys.push({});
    }

    $scope.submit = function() {
        console.log($scope);
    }

});

在提交函数中,我可以获得“some_name”输入的值:

$scope.submit = function() {
    console.log($scope.form_data.some_name);
}

但我无法获得“data_input”输入的值(它们在 ngform 标签内)。怎么做?(ngform 标签用于分别验证每个新添加的输入)

4

1 回答 1

4

ng-repeat 中的每个输入都需要自己独特的 ng-model 属性——它们都不能使用form_data.data_input. 这是解决您的问题的一种方法:

<ng-form ng-repeat="key in keys" name="keyForm">
    <input type="text" name="data_input" ng-model="key.data" required>
</ng-form> 

$scope.addKey = function () {
    $scope.keys.push({ data: ''});
}

小提琴

另请参阅https://stackoverflow.com/a/14379763/215945

于 2013-01-29T16:54:45.530 回答