使用Angular 1.5.5和Angular-Material 1.0.9,我创建了一个带有重复input
元素的HTML表单。我想使用ngMessages
来显示错误消息。我遇到的问题是,当我输入例如-1
时,正确的错误消息显示在工具提示中,但不在输入元素下方。问题似乎是ng-messages
属性不支持像input
的{{1}}属性那样的插值。我可以将变量放入包含正确名称的name
中,但我对该选项不满意,因为$scope
的{{1}}在HTML模板和JavaScript中定义控制器。有没有办法更干净地做到这一点?
input
要清楚:在呈现的DOM中,name
而<form name="form">
<md-input-container ng-repeat="product in purchase.products">
<input type="number" min="0" max="9999" ng-model="product.quantity"
name="product[{{$index}}].quantity">
<div ng-messages="form.product[$index].quantity.$error" md-auto-hide="false">
<div ng-message="min">Please enter 0 or more</div>
<div ng-message="max">Please enter 9999 or less</div>
</div>
</md-input-container>
</form>
不会更改,<input name="product[0].quantity"
不会被评估。我想我需要一个评估为ng-messages
的表达式。
答案 0 :(得分:1)
将您的name
属性更改为:
<input type="number" min="0" max="9999" required ng-model="product.quantity" name="product_{{$index}}">
您的ngMessages
:
<div ng-messages="form['product_' + $index].$error">
现在应该可以了。