angularjs
2015-02-03 40 views 6 likes 
6

Non ricevo né un valore emesso dal frammento del modello né una convalida del funzionamento. Il mio modello di Jade:ngMessaggi/convalida angolare non funzionanti

doctype html 
html(lang='en', ng-app="Validate") 
    head 
    script(src='#{cdn_path}/angular.js/1.3.11/angular.js') 
    script(src='#{cdn_path}/angular.js/1.3.11/angular-messages.js') 
    script. 
     angular.module('Validate', ['ngMessages']); 
    body 
    .container 
     form(method="POST", action="/apply", name="myform", novalidate="") 
     pre myform.name.$error = {{ myform.name.$error }} 
     input.form-control(name="name", required="", pattern=".*[a-zA-Z].*", minlength=5) 
     ng-messages(for="myform.name.$error") 
      ng-message(when="required") Required! 
      ng-message(when="min") Too small! 
     input.btn(type='submit') 

La risultante HTML: http://plnkr.co/edit/McyMXwW1b2Ae7kkwQ1sP

vorrei evitare di direttive personalizzati o molto in termini di ulteriore Javascript. Che cosa sto facendo di sbagliato?

risposta

18

Questo sta accadendo perché non si legano ng-modello con l'ingresso :-)

<input name="name" ng-model="name" required="" pattern=".*[a-zA-Z].*" minlength="5" class="form-control"> 
     <ng-messages for="myform.name.$error"> 
     <ng-message when="minlength">Too small!</ng-message> 
     <ng-message when="required">Required!</ng-message> 

Plunker: - http://plnkr.co/edit/kmNkfhdVOHQsstj6dpPT?p=preview

+0

Ehi, perché negativo? – squiroid

+0

E anche tu non stavi usando il messaggio ng corretto per una lunghezza minima quando = "minlength" – squiroid

+0

Mi chiedo perché questo è stato downvoted, questa è la soluzione corretta !!! –

17

mi resta che lo stesso problema e risolto. Voglio condividerlo così nessuno sprecherà un'ora come me.

Si prega di verificare quanto segue:

1. Caricare il modulo ngMessages

<!-- Load Angular --> 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0-rc.0/angular.min.js"></script> 

<!-- Load ngMessages --> 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0-rc.0/angular-messages.min.js"></script> 

2. Iniettare ngMessages nel nostro modulo applicativo

angular.module("app", [ "ngMessages" ]); 

3. Prova più recente versioni Per qualche ragione, il codice di Doug Luce funziona semplicemente cambiando le versioni ad es., 4.11!

+0

il passo 2 ha risolto il mio problema grazie –

+0

un'altra ora sprecata qui, grazie per l'aiuto per non farlo 2 :) – user230910

+0

Lo stesso, questo lo ha risolto. Grazie per aver postato @mnishiguchi, a volte lo stesso problema può essere causato da qualcos'altro :) –

Problemi correlati