2015-12-01 4 views
2

Как может мой ngMessages получить информацию об ошибке формы? Например, имя поля и другие свойства?ngMessages: как получить доступ к данным об ошибках (например, minlength, имя поля и т. Д.)?

Пример:

Я видел много примеров, которые выглядят следующим образом:

<input type="text" ng-model="field" name="myField" minlength="5"> 
<div ng-messages="myForm.myField.$error"> 
    <div ng-message="minlength">The value entered is too short</div> 
</div> 

Это не хорошее сообщение об ошибке, потому что он не говорит пользователю, как долго вход должно быть. Он просто говорит, что он слишком короткий.

Это должно выглядеть примерно так: "Это поле должно быть не менее {{minlength}} символов."

Еще лучше: «{{field}} должно быть не менее {{minlength}} символов."

Чтобы определить другое сообщение для входов с разными значениями minlength, крайне не сухим.

Как это можно сделать с помощью ngMessages?

ответ

0

Вы можете сохранить значение minlength в области видимости и затем привязать его к сообщению проверки.

<input type="text" ng-model="field" name="myField" minlength="::myFieldMinlength"> 
<div ng-messages="myForm.myField.$error"> 
    <div ng-message="minlength">This field must be at least {{::myFieldMinlength}} characters.</div> 
</div> 
+0

Спасибо, но я не совсем уверен, что понимаю. Является ли 'myFieldMinlength' переменной области видимости, заданной контроллером, например:' $ scope.myFieldMinlength = 6'? –

+0

Да, это правильно. Это был единственный способ, которым я мог подумать о том, что значение доступно для сообщения проверки. – JayChase

+0

Gotcha, спасибо. Тем не менее, я не уверен, как это работает, если форма имеет входные данные с разными минимальными значениями ... –

0

Я бы сделал это так же, как предложенный jayChase. Это определенно самый простой способ, и поскольку он предложил использовать единую привязку, не будет плохой производительности wise