2017-04-22 55 views
0

我有一個基本的問題,我不明白爲什麼它不工作NG提交不火的形式什麼

<div class="footer"> 
    <div class="row writing"> 
     <p>{{slogan}}</p> 
    </div> 
    {{send()}} //check if the function is there 
    <div class="container"> 
     <form name="userForm" ng-submit="send()" novalidate> 
      <div class="form-group col-md-6"> 
       <ng-form name="userMail"> 
        <input name="mail" type="email" ng-model="varmail" class="form-control" placeholder="Your mail" required> 
        <!--<p class="help-block" ng-show="userMail.mail.$invalid">Valid Email Required</p>--> 
       </ng-form> 
      </div> 
      <div class="form-group col-md-6"> 
       <ng-form name="userMarket"> 
        <input type="text" ng-model="varmarket" class="form-control" placeholder="huhu" 
         required> 
       </ng-form> 
      </div> 
      <div class="form-group"> 
       <button type="submit" class="btn btn-primary flat-butt">{{butLabel}}</button> 
      </div> 
     </form> 
    </div> 
</div> 

所以我能看到的功能是有,但在NG-提交不發射任何東西。 請注意,這是隔離範圍,並且該功能已成功傳入。

謝謝。

更新:我創建了一個普拉克在這裏,它不工作,要麼 http://plnkr.co/edit/CULSC4ajGfid25sEaT34?p=preview

+0

任何控制檯錯誤? – Und3rTow

+0

沒有什麼 –

+0

你能提供一個普朗克嗎?你是否在你的路由器中指定了控制器? –

回答

0

沒有什麼錯,你已經張貼(功能)代碼。

  1. 通過檢查控制檯是否有任何錯誤消息開始調試。
  2. 看看你的send函數,你傳遞給ngForm指令,並且它的範圍。
  3. 檢查該文件的HTML標記。也許你有尾隨<form>標籤混淆你的提交按鈕定位的表單。

如果您使用的是嵌套控制器,請嘗試使用「controller as」語法,以避免從每個創建的$ scope中訪問您的函數和變量。

此外,我不明白爲什麼你在表單中的輸入周圍有額外的ngForm指令。從你發佈的內容看,這似乎沒有必要。

這裏是你的代碼的工作:

// app.js 
 
(function() { 
 

 
    'use strict'; 
 

 
    angular.module('app', []); 
 

 
})(); 
 

 
// main.controller.js 
 
(function() { 
 

 
    'use strict'; 
 

 
    angular.module('app').controller('MainController', MainController); 
 

 
    MainController.$inject = ['$scope']; 
 

 
    function MainController($scope) { 
 

 
    $scope.butLabel = "Submit"; 
 

 
    $scope.send = send; 
 

 
    function send() { 
 
     alert("Triggered!"); 
 
    } 
 

 

 
    } 
 

 
})();
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<div class="footer" ng-app="app" ng-controller="MainController as MainCtrl"> 
 
    <div class="row writing"> 
 
    <p>{{slogan}}</p> 
 
    </div> 
 
    <div class="container"> 
 
    <form name="userForm" ng-submit="send()" novalidate> 
 
     <div class="form-group col-md-6"> 
 
     <ng-form name="userMail"> 
 
      <input name="mail" type="email" ng-model="varmail" class="form-control" placeholder="Your mail" required> 
 
      <!--<p class="help-block" ng-show="userMail.mail.$invalid">Valid Email Required</p>--> 
 
     </ng-form> 
 
     </div> 
 
     <div class="form-group col-md-6"> 
 
     <ng-form name="userMarket"> 
 
      <input type="text" ng-model="varmarket" class="form-control" placeholder="Your favorite super-market (Franprix, Carrefour,...)" required> 
 
     </ng-form> 
 
     </div> 
 
     <div class="form-group"> 
 
     <button type="submit" class="btn btn-primary flat-butt">{{butLabel}}</button> 
 
     </div> 
 
    </form> 
 
    </div> 
 
</div>

+0

我在這裏創建了一個Plunkr,它不在Plunkr上工作:http://plnkr.co/edit/CULSC4ajGfid25sEaT34?p=preview –

+0

所以在我的代碼中,我的代碼是一個隔離範圍的指令,也許是因爲它? –

+0

@ Quoc-HaoTran你的Plunkr正在工作...... – cnorthfield

0

所以我覺得,當我在函數中傳遞我應該使用 「sendInfo()」,而不是 「sendInfo」。

謝謝大家!