2014-10-08 84 views
0

我有一个表格定义函数没有被调用

<form role="form" name="signup" novalidate> 
          <div class="form-group" ng-class="{ 'has-error' : signup.firstname.$invalid && !signup.firstname.$pristine }"> 
           <label>First Name</label> 
           <input type="text" name="firstname" class="form-control" ng-model="firstname" required> 
           <p ng-show="signup.firstname.$invalid && !signup.firstname.$pristine" class="help-block">You name is required.</p> 
          </div><div class="form-group""> 
           <label>Last Name</label> 
           <input type="text" name="lastname" class="form-control" ng-model="lastname">         
          </div> 
          <div class="form-group" ng-class="{ 'has-error' : signup.phone.$invalid && !signup.phone.$pristine }"> 
           <label>Phone</label> 
           <input type="text" name="phone" class="form-control" ng-model="phone" ng-minlength="10">    
           <p ng-show="signup.phone.$invalid && !signup.phone.$pristine" class="help-block">Number is too short!!</p> 
          </div> 
          <div class="form-group" ng-class="{ 'has-error' : signup.email.$invalid && !signup.email.$pristine }"> 
           <label>Email</label> 
           <input type="email" name="email" class="form-control" ng-model="email"> 
           <p ng-show="signup.email.$invalid && !signup.email.$pristine" class="help-block">Enter a valid email.</p> 
          </div> 
          <div class="form-group" ng-class="{ 'has-error' : signup.password.$invalid && !signup.password.$pristine }"> 
           <label>Password</label> 
           <input type="password" name="password" class="form-control" ng-model="password" ng-minlength="6"> 
           <p ng-show="signup.password.$invalid && !signup.password.$pristine" class="help-block">Password is too short</p> 
          </div> 
          <div class="form-group" ng-class="{ 'has-error' : signup.passwordRepeat.$invalid && !signup.passwordRepeat.$pristine }"> 
           <label>Password Repeat</label> 
           <input type="password" name="passwordRepeat" class="form-control" ng-model="passwordRepeat" ng-minlength="6"> 
           <p ng-show="signup.passwordRepeat.$invalid && !signup.passwordRepeat.$pristine" class="help-block">Password repeat is too short</p> 
          </div> 

          <button type="submit" class="btn btn-primary btn-success" ng-disabled="signup.$invalid" ng-click="signing()">Create New Account</button> 
         </form> 

它调用一个控制器功能签名()

$scope.signing = function() { $scope.signup($scope.firstname, $scope.lastname, $scope.email, $scope.telephone, $scope.password, $scope.$passwordRepeat); } 

进而调用

$scope.signup = function ($firstname, $lastname, $email, $phone, $password, $passwordRepeat) {....} 

但控制台是说

"Error: $scope.signup is not a function"

事情是,两个函数都是在同一个控制器中定义的,而且工作正常,之前我似乎无法将我的头围绕在可能出错的地方。 它开始说有一个错误,我试图做表单验证。 任何帮助将不胜感激。

回答

0

问题是您使用的表格名称相同:name="signup"。这也会在$scope中创建一个signup属性,覆盖您在控制器中定义的signup功能。改变其中的一个应该可行。

+0

不知道这将是一个问题,它使它的工作。谢谢 – 2014-10-08 11:22:19