2017-04-22 102 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”。

谢谢大家!