Javascript 角度ng点击功能不';不要总是开火
我有一个角度ng点击功能,它并不总是开火 网址如下: 功能如下所示:Javascript 角度ng点击功能不';不要总是开火,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我有一个角度ng点击功能,它并不总是开火 网址如下: 功能如下所示: $scope.clickLike = function() { $('.icon-like').on('click', function(){ $(this).toggleClass('happy'); }); }; 我在HTML中这样调用它: <div class="icon-like" ng-click="clickLike()"</div> 在$sc
$scope.clickLike = function() {
$('.icon-like').on('click', function(){
$(this).toggleClass('happy');
});
};
我在HTML中这样调用它:
<div class="icon-like" ng-click="clickLike()"</div>
在$scope中不需要onclick方法。单击like
<div class="icon-like" ng-click="clickLike($event)"</div>
$scope.clickLike = function(e) {
e.currentTarget.toggleClass('happy');
});
在$scope中不需要onclick方法。单击like
<div class="icon-like" ng-click="clickLike($event)"</div>
$scope.clickLike = function(e) {
e.currentTarget.toggleClass('happy');
});
您需要在单击事件中传递$event
并捕获$event
。然后可以使用$event.target
访问元素
示例代码段:
angular.module(“myApp”,[])
.controller(“myController”,函数($scope){
$scope.clickLike=函数($event){
元素($event.target).toggleClass(“hello”)
}
})
。你好{
颜色:红色;
}
您好
您需要在单击事件中传递$event
并捕获$event
。然后可以使用$event.target
访问元素
示例代码段:
angular.module(“myApp”,[])
.controller(“myController”,函数($scope){
$scope.clickLike=函数($event){
元素($event.target).toggleClass(“hello”)
}
})
。你好{
颜色:红色;
}
您好
所以您需要使用指令来操作您的DOM。。。从控制器操作DOM不是最佳实践。看看这个例子,我创建了一个用作属性的指令(就像ng click),并将一个类应用于该指令作为属性的元素
从角度来看:
使用控制器:
- 设置$scope对象的初始状态
- 将行为添加到$scope对象
不要使用控制器:
- 操纵DOM-控制器应仅包含业务逻辑。将任何表示逻辑放入控制器会显著影响
它的可测试性。Angular在大多数情况下都有数据绑定,并有封装手动DOM操作的指令李>
- 格式化输入-改用角度窗体控件李>
- 过滤器输出-使用角度过滤器代替。跨控制器共享代码或状态-改用angular services李>
- 管理其他组件的生命周期(例如,创建服务实例)
让我知道这是否有帮助:
在html中,您可以在任何元素中使用此指令,但不能与控制器紧密耦合
因此您需要使用指令来操作DOM。。。从控制器操作DOM不是最佳实践。看看这个例子,我创建了一个用作属性的指令(就像ng click),并将一个类应用于该指令作为属性的元素
从角度来看:
使用控制器:
- 设置$scope对象的初始状态
- 将行为添加到$scope对象
不要使用控制器:
- 操纵DOM-控制器应仅包含业务逻辑。将任何表示逻辑放入控制器会显著影响
它的可测试性。Angular在大多数情况下都有数据绑定,并有封装手动DOM操作的指令李>
- 格式化输入-改用角度窗体控件李>
- 过滤器输出-使用角度过滤器代替。跨控制器共享代码或状态-改用angular services李>
- 管理其他组件的生命周期(例如,创建服务实例)
让我知道这是否有帮助:
在html中,您可以在任何元素中使用此指令,但不能与控制器紧密耦合
我们不需要在ng click函数中传递$event
并在scope函数中捕获吗?@A.J抱歉,我忘了那个。但是,嘿,谢谢你指出:)谢谢@A.J。不过,仅仅使用currentTarget.toggleClass()是不起作用的<代码>当前目标
未定义。对不起,我还在学习。想法?@lz430代替currentTarget,你需要使用$event.target
谢谢@A.J.现在我得到了e.currentTarget.toggleClass不是一个函数
我做错了什么吗。我准确地复制了你的代码。我们不需要在ng click函数中传递$event
并在scope函数中捕获吗?@A.J抱歉,我忘了那个。但是,嘿,谢谢你指出:)谢谢@A.J。不过,仅仅使用currentTarget.toggleClass()是不起作用的<代码>当前目标
未定义。对不起,我还在学习。想法?@lz430代替currentTarget,你需要使用$event.target
谢谢@A.J.现在我得到了e.currentTarget.toggleClass不是一个函数
我做错了什么吗。我完全复制了你的代码