- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 AngularJS 重写 jQuery 应用程序。我正在使用小步骤,一次更换一个区域。然而,我在如何在 AngularJS 中监听 jQuery 事件时遇到了问题。
作为示例,我在 jQuery 小部件中有一个 $(document).trigger('doSomething')
。我如何在 AngularJS Controller 中收听它?
我尝试过使用 $scope.$on('doSomething', function(){})
,但这仅指 Controller 的范围。我也尝试过 $rootScope.$on('doSomething', function(){})
,但没有运气。
有没有什么方法可以让我一步步转换我的应用程序,并且只监听 jQuery 触发的文档事件?
最佳答案
我在这里很激动,但我认为 jQuery 事件和 AngularJS 事件是两个独立的系统。一个快速的解决方案可能是拥有一个全局的包罗万象的 jQuery 事件监听器,它将 jQuery 事件转换为 AngularJS 事件。
稍后您可能需要将小部件包装在指令中,并在其中放置更具体的事件转换器。此时,您还可以考虑是否要坚持使用事件系统,或者 angular.service 是否可能是小部件与世界其他地方通信的更合适的方式。
上面假设您不能或不想重写小部件以使用 AngularJS 机制。如果这是一个选项,那么只需在小部件中直接使用 $scope.$broadcast
或 $scope.$emit
而不是 $.trigger
。
关于jquery - 如何在 AngularJS 中监听 jQuery 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16510288/
我是一名优秀的程序员,十分优秀!