Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript $(这)不';我不能在angularJS工作_Javascript_Jquery_Angularjs - Fatal编程技术网

Javascript $(这)不';我不能在angularJS工作

Javascript $(这)不';我不能在angularJS工作,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我正在用angularJS做一个chrome扩展,现在我遇到了一个问题 我想在我的弹出页面中添加一些按钮,我想当按钮被点击时,它的祖先节点消失,这是我的代码 在popup.html中 <div class="deadline"> <div class="btn-group"> <button class="btn" ng-click="removeDeadline()">complete</button> </div>

我正在用angularJS做一个chrome扩展,现在我遇到了一个问题

我想在我的弹出页面中添加一些按钮,我想当按钮被点击时,它的祖先节点消失,这是我的代码

在popup.html中

<div class="deadline">
  <div class="btn-group">
    <button class="btn" ng-click="removeDeadline()">complete</button>
  </div>
</div>
我不知道为什么这样不行。
请帮帮我。

首先,
$
是一个jQuery函数——您的扩展中包括jQuery了吗?否则,
angular.element
是AngularJS附带的内置“jQuery Lite”的函数

其次,当使用AngularJS时,从控制器操作内部访问DOM元素是不正确的形式:AngularJS是关于自动反映模型状态的视图(通过
$scope
)。例如,您显示的代码片段更适合写成:


完成
$scope.removeDeadline=function(){
$scope.hideLine=true;
}
记住这句话:

停止尝试使用jQuery修改控制器中的DOM。真正地这包括添加元素、删除元素、检索它们的内容、显示和隐藏它们。使用内置指令,或在必要时编写自己的指令来执行DOM操作。有关复制功能,请参见下文

<>如果你正在努力打破习惯,考虑从你的应用程序中删除jQuery。真正地Angular有$http服务和强大的指令,这使得它几乎总是不必要的。Angular捆绑的jQLite有一些最常用于编写Angular指令的特性,特别是绑定到事件的特性


谢谢,但我的html中有多个.deadline,我怎么能只删除我单击的?从应用程序中删除jQuery确实帮助我克服了jQuery的做事方式(尤其是在控制器中)。。很好的建议。@user1926122每个变量或对象或数组等都有一个不同的变量。使用Angular,首先关注数据模型,然后将视图连接到模型。一切都应该关注数据模型。
$scope.removeDeadline = function(){
  $(this).closest(".deadline").remove();
}