【问题标题】:AngularJS - ControllerAs ng-click not workingAngularJS - ControllerAs ng-click 不起作用
【发布时间】:2017-11-07 23:41:46
【问题描述】:

在我正在处理的项目上单击 ng-click 时没有得到任何响应,我正苦苦挣扎。为了隔离问题,我创建了一个简单的 plunkr:

https://plnkr.co/edit/N4tDDcP5wmeKC5keSHAj?p=preview

页面加载时没有错误消息,点击时没有错误消息,点击时没有显示 alert() 框。什么都没有发生。

<head>
  <meta charset="UTF-8">
  <title>Example - example-ng-click-production</title>


  <script src="//code.angularjs.org/snapshot/angular.min.js"></script>
  <script>
    var app = angular.module('app', []);
    app.controller('testController', function() {

      var vm = this;
      vm.test = test;

      function test() {
        alert("test");
      }

    });



  </script>


</head>

<body>
  <div ng-controller="testController as vm">
    <button ng-click="vm.test()">
      Test with controllerAs
    </button>
  </div>

</body>

有人可以帮忙吗?

非常感谢

【问题讨论】:

    标签: angularjs controlleras


    【解决方案1】:

    你在 body 上错过了 ng-app,见下文:

    <body ng-app="app" ng-controller="testController as vm">
      <button ng-click="vm.test()">
        Test
      </button>
      <span>
    </span>
    </body>
    

    在此处查看更新的 plunker:

    https://plnkr.co/edit/kBPOEpTvZBnNZJ1PchL2?p=info

    【讨论】:

    • 天哪,我真是个白痴。谢谢维塔利亚。这实际上是我正在开发的一个复杂应用程序的精简版,它有同样的问题。我会看看应用程序是否有同样的问题。我认为这是我唯一一次使用 ng-click,所以可能是同一个问题。再次感谢。一旦我检查了主应用程序,我会再次确认。
    • 刚刚通过源代码检查 - 我确实有 ng-app,但它被分配给 元素,而不是 元素。我修改了您的 plunkr 以将 ng-app 分配给 并且它也失败了。
    • 啊,我的错,它正在工作。但是,我用于核心 HTML 页面的模板也有一个对 HTML 元素的 ng-click。我猜这会引起一些冲突。感谢您的提示。
    • 很高兴你想通了!快乐编码:)
    • 谢谢维塔利。事实证明,这与我正在使用的角度数据表模块(或位于角度模块后面的底层 jquery 数据表)有关。解决这个问题会很有趣 - 我想我会找到另一个解决方案:-)
    最近更新 更多