【问题标题】:ng-click not firing any eventng-click 不触发任何事件
【发布时间】:2016-09-15 21:19:43
【问题描述】:

这是我尝试输入详细信息的 html 部分..

<div  ng-app="angularPHP">
<div ng-controller="mainpagecntl">
     <div id="customer" class="cuscontainer" hidden="hidden">
        <div>
            <h3 class="modal-title" >Add customer</h3>
            <i class="fa fa-times" id="clo" aria-hidden="true"></i>
        </div>
            <table>
            <tr>

                <div class="form-group" >
                <td><label id="label"  class="control-label">customer Name:</label>
                <td><input type="text" class="form-control" ng-model="customer_name"  />
                </div>
            </tr>
            <tr>
            <div class="form-group">
                <td><label id="label" class="control-label">Address:</label></td>
                <td><input type="text" class="form-control" ng-model="customer_add"/></td>
            </div>
            </tr>
            </table>
                <div class="madal-footer">
                    <button class="btn btn-primary"   ng-click="custadd()">ADD</button><br />

                </div>
        </div>
</div>
</div>

这是我的 angular-js 部分..

var app = angular.module('angularPHP', []);
     app.controller('mainpagecntl', function($http,$scope)
    {
        $scope.custadd= function()
          {
             data={
                     cname :$scope.customer_name,                            
                      cadd: $scope.customer_add,
                   }
                   $http.post("../pos_system/Widgets/addcust.php?add",data).success(function(data)
                   { 
                   });
                  }
        });

但是当我点击按钮时,我的 ng-click 功能没有触发。

【问题讨论】:

  • 您是否使用 ng-app 指令引导 Angular?你在使用 ng-controller 指令吗?
  • 我正在使用 ng-controller 指令。@DanielBornstrand
  • 为数据对象指定 var。在 click 函数中给出 console.log 或 alert 并检查。注释剩余代码
  • 你能展示你的控制器吗?
  • 你有没有触发它?它可能会显示一些错误

标签: php html angularjs


【解决方案1】:

尝试像这样在&lt;div id="customer" class="cuscontainer" hidden="hidden"&gt; 处添加ng-controller="myCtrl"

<div id="customer" class="cuscontainer" hidden="hidden" ng-controller="myCtrl">

【讨论】:

    【解决方案2】:

    您确定该函数根本没有触发吗?它可能正在触发,但只是未能发布数据。 console.log 直接在函数内部进行检查,例如

    var app = angular.module('angularPHP', []);
    
    app.controller('mainpagecntl', function($http,$scope) {
    
        var vm = this;
    
        vm.custadd = function() {
    
          console.log('test');
    
          var data = { cname :$scope.customer_name, cadd: $scope.customer_add};
    
          $http.post("../pos_system/Widgets/addcust.php?add",data)
           .success(function(data) { 
            console.log(data);
           });
    
        }
    
    }
    

    那么你的 ng-click 应该是这样的

    ng-click='vm.custadd()'
    

    看看这有什么不同。

    注意:你的 ng-controller 也应该看起来像

    ng-controller="mainpagecntl as vm"
    

    如下面的 cmets 所述。

    【讨论】:

    • 我认为 bharathv 在上面的评论中是正确的,您可能忘记为您的数据对象声明 var。
    • 发布你的控制器!
    • 看看我的编辑,看看是否有帮助。
    • 只有当你做ng-controller="mainpagecntl as vm" - 与ng-click='vm.custadd()'相关
    • 我也在 firebug 中测试,没有错误显示,也没有发生任何事情。@user2085143
    【解决方案3】:

    这是您的代码的工作演示 https://plnkr.co/edit/k7yApAavre66KFAiVlOp?p=preview,当我单击“添加”按钮时它运行良好。虽然我已经从表格中删除了一些 div 标签,因为这是不好的做法,并且 Angular 在使用其指令时不会识别这些标签。

    var app = angular.module('angularPHP', []);
    app.controller('mainpagecntl', function($http, $scope) {
        $scope.custadd = function() {
            $scope.data = {
                cname: $scope.customer_name,
                cadd: $scope.customer_add,
            }
           // $http.post("../pos_system/Widgets/addcust.php?add", data).success(function(data) {});
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-21
      • 1970-01-01
      • 2015-12-06
      • 2017-06-21
      • 1970-01-01
      • 2017-02-26
      相关资源
      最近更新 更多