使用 ng-repeat访问 ng 表单元素/值

accessing ng-form elements/values with ng-repeat

本文关键字:元素 表单 ng ng-repeat 访问 使用      更新时间:2023-09-26

我正在寻找将非绑定(正确的术语?(表单数据传递给控制器方法的最佳方法。我将如何访问表单的对象及其值?

.html

<html ng-app="app">
<body ng-controller="MainController as main">
<ng-form name="add_lead_form">
    <div ng-repeat="label in form.lead_labels track by $index" ng-show="label.visible">
        <div class="input-group lead-data">
            <span class="input-group-addon">{{getLabel(label)}}</span>
             <input ng-model="add_lead_form.addleadValue[$index]" name="addleadValue" type="text" class="form-control" aria-describedby="basic-addon1">
             <input type="hidden" ng-model="add_lead_form.addleadLabelId[$index]" name="add_lead_form.addleadLabelId" ng-value="label.id" />
        </div>
    </div>

    <div class="pull-right"><button ng-click="addLead()" class="btn btn-primary btn-lg">Save Lead</button></div>
</ng-form>
</body>
</html>

应用.js

var app = angular.module('app', []);
app.controller('MainController', ['$scope', function($scope) {
    $scope.addLead = function() {
        console.log($scope.add_lead_form);
    };
}]);

您无法访问已在父div 中声明的 ng-repeat 中的表单,为了创建正确的表单,您可以在ng-repeat中添加新的innerForm,您必须需要通过添加新的 html 结构来更改innerForm

<div ng-repeat="label in form.lead_labels track by $index" ng-show="label.visible">
    <ng-form name="innerForm">
        <div class="input-group lead-data">
            <span class="input-group-addon">{{getLabel(label)}}</span>
            <input ng-model="add_lead_form.addleadValue[$index]" name="innerForm.addleadValue" type="text" class="form-control" aria-describedby="basic-addon1">
            <input type="hidden" ng-model="add_lead_form.addleadLabelId[$index]" name="innerForm.addleadLabelId" ng-value="label.id" />
        </div>
    </ng-form>
</div>

使用上面的代码尝试一下,谢谢