【问题标题】:How to get data from ngform in angularjs?如何从angularjs中的ngform获取数据?
【发布时间】:2013-01-30 00:54:55
【问题描述】:

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 标签用于单独验证每个新添加的输入)

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    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: ''});
    }
    

    Fiddle.

    另见https://stackoverflow.com/a/14379763/215945

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-01
      • 1970-01-01
      • 2018-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多