将此问题移至此帖 - 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;
};
});
答案 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工作。