为什么ng-click不起作用?

时间:2016-01-28 23:37:48

标签: javascript angularjs

将此问题移至此帖 - Angular events, ng-click, do not work with other libraries Dojo, Knockout, KendoUI, ESRI JSAPI

无论我尝试什么,ng-click都不起作用。但是,onclick有效。在范围内,连接点击事件不起作用。发生了什么事?

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

编辑2:继承人 - https://plnkr.co/edit/kK3NmWB9wfOopG7m5MYv?p=preview

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

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

这是app:

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;
    };


});

1 个答案:

答案 0 :(得分:1)

问题在于:

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指令中的应用声明不匹配,因此该应用不是&#39工作。