Angular 1.3表单验证,深层对象为ng-model

时间:2014-10-03 10:41:03

标签: angularjs

我有一个使用范围var的表单:

function Money() {
    this.notional = 0;
}
$scope.money = new Money();

但我不知道当它无效时如何显示错误 myForm.money.notional

<form name="myForm">
    <input type="text" ng-model="myForm.money.notional" money="money" finance-input size="30" required
           placeholder="insert currency value"/>

    <div ng-if="myForm.money.notional.$invalid">
        There is an error with the field...
    </div>

        <pre>
Errors = {{ myForm.money.notional.$error  }}
    </pre>

    <button ng-click="reset()">RESET</button>
    <button ng-click="update(user)" ng-disabled="myForm.$invalid">SAVE</button>
</form>

1 个答案:

答案 0 :(得分:1)

Angular的验证基础架构需要元素名称,而不是模型名称。

在您的情况下,您已为表单指定了名称,但指向<input>。因此,如果您将HTML更改为:

<form name="myform">
    ...
    <input ... name="notional" />

您可以测试有效性:

<div ng-if="myForm.notional.$invalid">...</div>