Angular:当视图更改时,ng-form未定义

时间:2016-03-13 06:33:49

标签: javascript angularjs angularjs-scope angularjs-ng-repeat

删除行时,我在下拉列表选项中进行了一些验证检查。保存值后,我将重定向到另一个视图。当我试图删除一行时,表单显示未定义。我做错了什么?

我的jsp -

<div class="form-group" ng-show="editMode!=''">
    <label for="editProductJobFileConfig" class="col-md-2 control-label">Job File Configuration</label>
    <div ng-class="{'col-sm-9':editMode!=''}" class="col-md-10">
    <table class="table table-bordered table-striped table-hover table-condensed">
        <thead>
            <th>Job File Type</th>
            <th>Job File Name</th>
            <th></th>
        </thead>
        <tbody>
            <tr ng-repeat="object in editProductJobFileConfig track by $index" novalidate ng-form="jobfileForm">
                <td>
                    <select class="form-control" ng-model="object.key" required ng-change="reValidateJobFileKey(editProductJobFileConfig)" name="jobFileKey" ng-init="object.form = jobfileForm">
                        <option style="display:none" value=""></option>
                        <option value="some1">some1</option>
                        <option value="some2">some2</option>
                        <option value="some3">some1</option>
                        <option value="some4">some4</option>
                        <option value="some5">some5</option>
                    </select>
                </td>
                <td>
                    <input type="text" class="form-control" name="jobFileName" ng-model="object.value" required/>
                </td>
                <td>
                    <button class="btn btn-danger btn-sm" data-style="zoom-in" ng-click="deleteFieldMappingDefaults(editProductJobFileConfig,$index)>
                        <span class="glyphicon glyphicon-remove"></span>
                    </button>
               </td>
            </tr>
            <tr>
                <td colspan="3">
                    <button class="btn btn-primary btn-sm" ng-click="editProductJobFileConfig.push({'key':'','value':''})"  title="Add Value">
                        <span class="glyphicon glyphicon-plus"></span> Add Value
                    </button>
                </td>
            </tr>
        </tbody>
    </table>
    </div>
</div>

我的控制器 -

$scope.deleteFieldMappingDefaults = function(editProductJobFileConfig, index) {
    angular.forEach(editProductJobFileConfig, function(fieldMapO) {
        fieldMapO.form.jobFileKey.$setValidity("duplicate",true);
    });

    for (var i=editProductJobFileConfig.length-1; i>index; i--) {
        editProductJobFileConfig[i].form.jobFileKey =  editProductJobFileConfig[i-1].form.jobFileKey;
    }
    editProductJobFileConfig.splice(index,1);
};

我第一次删除editProductJobFileConfig保留表单并设置有效性。但是一旦我保存我的值视图正在改变,当我选择相同的产品并尝试删除一行时,它显示的形式是未定义的。

0 个答案:

没有答案