2017-03-16 3 views
0

이메일을 보낼 수있는 모달을 만들었습니다. 확인을 위해 입력을 확인하고 있습니다. 하지만 정의되지 않은 함수 오류가 발생합니다. 오류 코드 :각도 js 정의되지 않은 기능

ReferenceError: validateEmail is not defined

anglejs 스크립트를 추가했습니다. Ng-app가 시작되었습니다. 또한 ng-if 문을 사용하여 오류를 표시하려면 어떻게합니까?

모달 코드

<div id="contact" class="modal fade" role="dialog" name="contact" ng-controller="mailController"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal">&times;</button> 
       <h4 class="modal-title"><span class="glyphicon glyphicon-phone-alt" style="color:#D9534F"></span> Contact Us?</h4> 
      </div> 
      <div class="modal-body" style="width:600px; height:400px">  
       <section id="contact" style=""> 
        <div class="container" style="width:100%;"> 
         <div class="row"> 
          <div class="about_our_company" style="margin-bottom: 20px;"> 
           <h2 style="color:#ffff;" class="text-center">Write Your Message</h2> 
          </div> 
         </div> 
         <div class="row"> 
          <div class="col-md-6"> 
           <form name="contactForm" id="contactForm"> 
            <div class="row"> 
             <div class="col-md-12"> 
              <div class="form-group required"> 
               <input ng-model="name" required type="text" class="form-control" placeholder="Your Name *" id="name"> 
              </div> 
              <div class="form-group"> 
               <input ng-model="email" type="email" class="form-control" placeholder="Your Email *" id="email"> 
              </div> 
              <div class="form-group"> 
               <input ng-model="phone" type="tel" class="form-control" placeholder="Your Phone *" id="phone"> 
              </div> 
              <div class="form-group"> 
               <textarea ng-model="message" rows ="5" style = "resize:none;" required="enter" class="form-control" placeholder="Your Message *" id="message"></textarea> 
              </div>    
             </div> 
             <div class="clearfix"></div> 
             <div class="col-lg-12 text-center"> 
              <button type="button text-center" class="btn btn-primary" ng-click="sendEmail();">Send Message</button> 
             </div> 
            </div> 
           </form> 
          </div> 
         </div> 
        </div> 
       </section>   
      </div> 
      <div class="modal-footer"> 
       <button type="button" class="btn btn-danger" data-dismiss="modal">Close</button> 
      </div> 
     </div> 
    </div> 
</div> 

App.js

var app = angular.module('dwgcloud', []).controller('mailController', ['$scope','$http',function($scope,$http){ 
     $scope.name=null; 
     $scope.email=null; 
     $scope.phone=null; 
     $scope.message=null; 

     $scope.sendEmail = function(){ 
      if(!$scope.name || !$scope.phone || !$scope.email || !$scope.message){ 
       alert("Values Cannot be Empty"); 
      }else{ 
       var name=$scope.name; 
       var email=validateEmail($scope.email); 
       var message=$scope.message; 
       var phone=validateGsm($scope.phone); 
       if(email){ 
        if(phone.length===10){ 
         $http({ 
          method : 'POST', 
          url : 'services.php', 
          data:{ 
           name:name, 
           email:email, 
           phone:phone, 
           message:message, 
           type:'contactMail' 
          }, 
          headers : {'Content-Type': 'application/x-www-form-urlencoded'} 
         }).success(function(data) { 
          if (data.errors) { 
           console.log("An error occurred"); 
          } else { 
           alert("Mail Sent"); 
          } 
         });      
        }else{ 
         alert("Please enter a valid phone number"); 
        } 
       }else{ 
        alert("Please enter a valid e-mail address"); 
       } 
      }; 
     }; 

     $scope.validateEmail = function(email) { 
      var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/; 
      return regex.test(email); 
     }  

     $scope.validateGsm=function(phone){ 
      var gsm=$scope.phone.replace(/[^\d]/, ""); 
      return gsm; 
     } 
    }]);  

답변

3

validateEmail 및 validateGsm와 함께 사용해야합니다 다음 $ 범위 객체에 정의 된 "$ 범위."기능 접두어 또한 올바른 코드 아래에서 사용할 수 있습니다.

var name=$scope.name; 
var email=$scope.validateEmail($scope.email); 
var message=$scope.message; 
var phone=$scope.validateGsm($scope.phone); 
+1

Eywallah bro : D – Fatih

+0

Rica ederim kolay gelsin;) –

관련 문제