2014-10-08 149 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