2013-07-04 7 views
17

क्या इनपुट प्रकार = "ईमेल" और एनजी-मॉडल विशेषता के साथ कुछ विशेष चल रहा है? यदि इनपुट ईमेल है, तो मॉडल अपडेट नहीं होता है। यदि मैं इनपुट प्रकार को पाठ, संख्या या दिनांक में सही तरीके से अपडेट करता हूं।क्या कोई एनजी-मॉडल और इनपुट प्रकार ईमेल बग है?

बग या कुछ विशेष जादू ईमेल सत्यापन व्यवहार जो मैं समझ नहीं पा रहा हूं?

+0

शायद आपका यह मतलब http://www.youtube.com/watch?v=ZhfUv0spHCY&t=29m19s है? –

+0

आप जिस कोणीय कोण का उपयोग कर रहे हैं उसका संस्करण –

उत्तर

29

यह तब इनपुट पर कुछ सत्यापन करता है, इसलिए मॉडल से बंधने से पहले आपको एक वैध ईमेल पता दर्ज करना होगा।

/^[A-Za-z0-9._%+-][email protected][A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/ 

मूल रूप से आप इनपुट के लिए एक पता है कि कम से कम [email protected]

3

A पूरक की जरूरत है, तो आप आप पर गुणों का उपयोग कर सकते हैं अपने ईमेल दर्ज करती हैं फार्म:

इस regex कि इस्तेमाल किया जाता है , मान्य है इस तरह:

एचटीएमएल:

<form name="myForm" ng-submit="submit()"> 
    <input type="email" ng-model="email1" name="email1" /> 
</form> 

जावास्क्रिप्ट:

//[formName].[inputFieldName].property 
myForm.email1.$pristine; 
// Boolean. True if the user has not yet modified the form. 
myForm.email1.$dirty 
// Boolean. True if the user has already modified the form. 
myForm.email1.$valid 
// Boolean.True if the the form passes the validation. 
myForm.email1.$invalid 
// Boolean. True if the the form doesn't pass the validation. 
myForm.email1.$error 

Reference

2

कोणीय 1.3 से शुरू, आप आसानी से 'ईमेल' सत्यापनकर्ता के ऊपर लिख और यह हमेशा सच वापसी कर सकते हैं।

angular 
 
    .module('myApp', []) 
 
    .controller('MainController', function() { 
 
    this.email = ''; 
 
    }) 
 
    .directive('noEmailValidation', function() { 
 
    return { 
 
     restrict: 'A', 
 
     require: 'ngModel', 
 
     link: function(scope, elm, attr, ctrl) { 
 
     ctrl.$validators['email'] = function() { 
 
      return true; 
 
     }; 
 
     } 
 
    } 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.min.js"></script> 
 
<div ng-app="myApp"> 
 
    <form ng-controller="MainController as main"> 
 
    <div>Email: {{main.email}}</div> 
 
    <input type="email" ng-model="main.email" no-email-validation> 
 
    </form> 
 
</div>

का आनंद लें।

11

यह कोई बग नहीं है, यह केवल तभी अपडेट होता है जब हम ईमेल सत्यापन के लिए सही ईमेल पता प्रारूप टाइप करते हैं। अमान्य ईमेल इनपुट की अनुमति देने के लिए इस विशेषता ng-model-options="{'allowInvalid': true}" जोड़ें।

संबंधित मुद्दे