如何在重复的md-input-container

时间:2016-07-20 13:01:46

标签: angularjs angular-material

使用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的表达式。

1 个答案:

答案 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">

现在应该可以了。