为什么 ng 点击不起作用

Why does ng-click not work?

本文关键字:不起作用 ng 为什么      更新时间:2023-09-26

将这个问题移到这篇文章 - 角度事件,ng-click,不适用于其他库 Dojo, Knockout, KendoUI, ESRI JSAPI

无论我尝试什么,ng-click都不起作用。 但是,点击有效。在示波器内,连接点击事件不起作用。这是怎么回事?

编辑:我可以从命令行调用$scope.myClick()。但它不会达到断点。它将显示一个警报窗口,但如果从 HTML 指令中调用它,则不会命中该函数。

编辑2:这是一个笨蛋 - https://plnkr.co/edit/kK3NmWB9wfOopG7m5MYv?p=preview

编辑3:好的,所以plunker可以工作,但是我需要添加角度的可怕应用程序必须弄乱角度中的东西。任何想法可能会破坏现有应用程序中的 Angular?这个其他应用程序使用 dojo、dojo 加载器和 require.js。一切正常,除了 ng-click 事件。

编辑4:我注释掉了来自此应用程序的Init()调用,该应用程序加载了Dojo,Kendo UI,Knockout和ESRI JSAPI组件,并且此带有ng-click的Angular代码有效。我的直觉是淘汰赛正在搞砸这个。是否可以将 Angular 与本应用程序的其余部分完全隔离?有什么建议吗?

这是应用程序:

var myApp = angular.module('myApp ', []);

命令:

myApp.directive('rapidReport',
function () {
    return {
        restrict: 'E'
    }
});
  <div class="ls-rapidReports">
        <div ng-app="myApp">
            <div id="rapidreportCtrl" ng-controller="rrController">
                <button type="button" ng-click="myClick()">hehe</button>
            </div>
        </div>
    </div>

控制器:

myApp.controller('rrController',
function rrController($scope) {
    $scope.myClick = function () {
        debugger;
    };

});

这是问题所在:

var myApp = angular.module('myApp ', []);

应该是:

var myApp = angular.module('myApp', []); //myApp without space before '

-

编辑:现在我看到它在 plnkr 中修复。如果您实际上尝试在 myApp 声明中再次添加空格,您将在控制台中看到以下错误消息。

Uncaught Error: [$injector:modulerr] Failed to instantiate module myApp due to:
Error: [$injector:nomod] Module 'myApp' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.

正如您可以从错误日志中推断的那样,script.js中的应用程序声明与 index.html 中 ng-app 指令中的声明不匹配,因此应用程序无法正常工作。