Javascript 为什么dom事件不';t在angularjs中的控制器内工作

Javascript 为什么dom事件不';t在angularjs中的控制器内工作,javascript,angularjs,Javascript,Angularjs,我有一个像这样的控制器,它连接到html的主体 angular.module("app", []) .controller("MyCtrl", function($scope) { // Here I perform some jquery code listening for click event $("a").click(function() { $(this).toggleClass("active"); }); }); 现在,我想知道为什么这在控

我有一个像这样的控制器,它连接到html的
主体

angular.module("app", [])

.controller("MyCtrl", function($scope) {

   // Here I perform some jquery code listening for click event

   $("a").click(function() {
      $(this).toggleClass("active");
   });

});
现在,我想知道为什么这在控制器内不起作用。我知道,如果我把它放在指令里,它就会起作用

,因为这不是一个好的做法

如果您想要一些切换功能,请使用
AngularJs
提供的内置指令功能,而不是使用
JQuery
$(“a”)。单击

功能主控制器($scope){
$scope.toggle=true;
}
.box{
颜色:白色;
文本对齐:居中;
高度:100px;
字号:86px;
}
.在{
背景颜色:绿色;
}
.关{
背景色:红色;
}
.box显示设置,
.box隐藏设置{
-webkit过渡:全线性0.3s;
-moz过渡:全线性0.3s;
-ms转换:全线性0.3s;
-o-过渡:全线性0.3s;
过渡:全线性0.3s;
}
.box显示设置{
不透明度:0;
身高:0;
}
.box-show-setup.box-show-start{
不透明度:1;
高度:100px;
}
.box隐藏设置{
不透明度:1;
身高:0;
}
.box-hide-setup.box-hide-start{
不透明度:0;
高度:100px;
}

切换!
在…上
关

什么意思,它不工作了?更具体一点。这不是一个直接的答案,但在我看来,DOM操作永远不应该在控制器内部。这种方法是否有特定目的?就像你说的,它在指令中工作。我想你应该再看看什么是AngularJs控制器。您定义的函数被用作构造函数请将整个代码放在此处..您如何尝试访问此控制器。如果可能的话,还可以对其进行一次猛击。在该代码中执行一个
警报($(“a”).length)