2016-04-14 2 views
1

Hallo Ich habe eine App, die eine Menge Formularvalidierung über Seiten benötigt, also versuche ich, Validierungsmuster von einem Dienst zu erhalten, den ich unter den Controllern verwende.ng-patten als Variable aus einem Service erhalten

Das Problem hier ist das ng-Muster reagiert nicht richtig, wenn ich eine korrekte E-Mail-Adresse eingeben.

Dies ist ein plunker und hier ist der Code für das Formular

<form method="POST" action="#" name="newsletterForm" id="newsletterForm" ng-controller="newsletterForm" novalidate> 
     <input ng-pattern="/{{patterns.email}}/" type="email" name="email" ng-model="email" required /> 
     <button type="submit">Invia</button> 
     {{newsletterForm.email.$error.pattern}} 
    </form> 

Dies ist der app.js Code

var app = angular.module('plunker', []); 
app.controller('MainCtrl', function(){}); 
app.service('validationPatterns', function() { 
    this.getPatterns = function() { 
     return { 
      email: "^([a-zA-Z0-9\'\.\-\_]{2,64})([\@]{1})([a-zA-Z0-9\.\-\_]{2,64})([\.]{1})([a-zA-Z]{2,16})$" 
     } 
    } 
}); 
app.controller('newsletterForm', function($scope, validationPatterns){ 
    $scope.patterns = validationPatterns.getPatterns(); 
}); 

ich das Problem annehmen könnte, dass, wenn Winkel macht das Muster innerhalb der Eingabe-Tag es rendert es die Backslashes

^([a-zA-Z0-9'.-_]{2,64})([@]{1})([a-zA-Z0-9.-_]{2,64})([.]{1})([a-zA-Z]{2,16})$ 

Ich habe schon tr Das Hinzufügen doppelter umgekehrter Schrägstriche im Service, um eckige Rendern korrekt zu machen, funktioniert aber immer noch nicht. Irgendwelche Ideen?

+0

Plunker leer ist –

+0

fixiert. Vielen Dank. https://plnr.co/edit/g0c9yWrLg2Nws9B4nxI1?p=preview –

Antwort

0

ng-pattern arbeitet mit einer $scope Variable. In Ihrem Fall sollte es

sein
<input ng-pattern="patterns.email" 

Aktualisiert plunker

+0

Sie sind brillant und ich bin ein Idiot. Danke vielmals. –

Verwandte Themen