2016-06-28 41 views
1

我无法获得ng-messagesng-repeat一起使用。ng消息不适用于ng-repeat

<form name="testForm"> 
    <input type="text" name="text" ng-model="text" required /> 
    <div ng-messages="testForm.text.$error"> 
     <div ng-repeat="Error in errors" ng-message="Error.type">{{ Error.message }} </div> 
    </div> 
</form> 

这里是一个例子:http://codepen.io/jakej/pen/dXvRdp 第一种形式是使用ng-repeat

我已经试过ng-messageng-message-exp但它们都不起作用。 为什么ng-repeat打破ng-message指令?

在此先感谢!

回答

1

首先,你必须在一个错误你的Json数组。

后,你需要添加一个跨度NG-Message属性的NG-重复的孩子<div>

并添加{{}}在NG-Message属性

它的工作原理好

JS

HTML

<div ng-repeat="Error in errors"> 
    <span ng-message="{{Error.type}}">{{Error.message}}</span> 
</div> 

UPDATE

你并不需要增加儿童元素,只有{{}}小姐很重要

<div ng-repeat="Error in errors" ng-message="{{Error.type}}">                  
    {{Error.message}} 
</div> 
1

而不是使用NG重复和NG-消息一起的,试试这个方法:

<form name="testForm"> 
    <input type="text" name="text" ng-model="text" required /> 
<div ng-repeat="item in items"> 
<div ng-messages="testForm.text.$error"> 
     <div ng-message="Error.type">{{ Error.message }} </div> 
    </div> 
</div> 

</form> 
0

试图在范围错误的数组:

$scope.errors = [{ 
    type: "required", 
    message: "Field is required" 
}]