0

我有一个表格,其中模型包含一组子模型,如下所示:

<form name="form1">
    <div ng-repeat="sub in model.submodels">
        <input ng-model="sub.name" required>
        <button ng-click="delSubmodel($index)">x</button>
    </div>
    <button ng-click="addSubmodel()">+</button>
    <button ng-disabled="form1.$invalid" type="submit">Save</button>
</form>

当没有输入字段时(或者,一般来说,当输入字段的计数小于/大于某个值时)如何使表单无效

更新:感谢您的回复,我希望这可以在控制器之外完成。

4

1 回答 1

2

好的,我刚刚得到了你想要实现的东西,你必须在表单中添加一个约束,即 subModel 的大小,所以在你的提交方法中:

在做任何事情之前

$scope.form1.$setValidity('size', model.subModels.length <= 0);

如果您的条件为假,这会将表单的有效性设置为假,反之亦然,您还可以显示一条消息以通知用户,添加以下内容:

<form name="form1">
<div ng-repeat="sub in model.submodels">
    <input ng-model="sub.name" required>
    <button ng-click="delSubmodel($index)">x</button>
</div>
<input type="hidden" name="size" ng-model="model.subModels.length" />
<button ng-click="addSubmodel()">+</button>
<button ng-disabled="form1.$invalid" type="submit">Save</button>

如果你觉得你没有很好地理解我的观点,你可以查看这个例子,我的观点也是如此,只是改变了单个输入的有效性。

希望它可以帮助你。

于 2015-08-26T21:17:23.700 回答