Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.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_Angularjs - Fatal编程技术网

Javascript AngularJS在指令中有很多听众

Javascript AngularJS在指令中有很多听众,javascript,angularjs,Javascript,Angularjs,我知道任何DOM操作都应该通过指令而不是控制器来完成。 到目前为止,我的手风琴指令中有大约10个侦听器,对添加/删除项目、激活等做出反应。我的控制器中也有许多事件 我想知道(ab)使用这种交互是否可以 也许最好有多个指令来处理1个侦听器和 使用它们传递某些参数 抱歉提出了这样一个模糊的问题,我只是想知道什么是真正的“角度”方式。指令不应该相互了解,除非它们之间有某种层次结构或设计的交互行为,因此共享侦听器会很麻烦。即使他们彼此认识,也不习惯分享听众。如果没有性能或内存问题,那么就没有问题要解

我知道任何DOM操作都应该通过指令而不是控制器来完成。
到目前为止,我的手风琴指令中有大约10个侦听器,对添加/删除项目、激活等做出反应。我的控制器中也有许多事件

  • 我想知道(ab)使用这种交互是否可以
  • 也许最好有多个指令来处理1个侦听器和 使用它们传递某些参数

抱歉提出了这样一个模糊的问题,我只是想知道什么是真正的“角度”方式。

指令不应该相互了解,除非它们之间有某种层次结构或设计的交互行为,因此共享侦听器会很麻烦。即使他们彼此认识,也不习惯分享听众。如果没有性能或内存问题,那么就没有问题要解决

你有没有试过打开firefly或Chrome的开发者工具,看看一些元素注册了多少事件处理程序?太多了!在整个DOM中,在任何给定的时间都有数百个侦听器处于活动状态(请注意,不仅仅是AngularJs)。此外,您唯一要减少的是事件侦听器引用,而不是作为事件结果执行的功能

所以不要担心你现在的10个听众。然而,如果我们有一个具体的例子,我们可能可以通过使用
$scope
来帮助Allivate一些事件处理程序(通过另一个指令已经设置的属性)


作为旁注,如果指令或控制器之间有很高的内聚性:

您的指令/控制器中可能有太多的逻辑 您非常依赖$scope来共享数据。在这些情况下 你应该考虑简化指令和移动。 服务的状态依赖逻辑。避免


指令之间不应该相互了解,除非它们之间有某种层次结构或设计的交互行为,因此共享侦听器会很麻烦。即使他们彼此认识,也不习惯分享听众。如果没有性能或内存问题,那么就没有问题要解决

你有没有试过打开firefly或Chrome的开发者工具,看看一些元素注册了多少事件处理程序?太多了!在整个DOM中,在任何给定的时间都有数百个侦听器处于活动状态(请注意,不仅仅是AngularJs)。此外,您唯一要减少的是事件侦听器引用,而不是作为事件结果执行的功能

所以不要担心你现在的10个听众。然而,如果我们有一个具体的例子,我们可能可以通过使用
$scope
来帮助Allivate一些事件处理程序(通过另一个指令已经设置的属性)


作为旁注,如果指令或控制器之间有很高的内聚性:

您的指令/控制器中可能有太多的逻辑 您非常依赖$scope来共享数据。在这些情况下 你应该考虑简化指令和移动。 服务的状态依赖逻辑。避免


你有一个代码片段来演示你在做什么吗?也许有更干净的方法来做同样的事情。总而言之,如果它是可测试的,并且易于维护,那么你就有了一个解决方案的赢家,你不必担心。我唯一的建议是尝试不要为指令的每个应用程序创建新函数,并创建100%基于它们接收的参数工作的函数。你有一个代码片段来演示你在做什么吗?也许有更干净的方法来做同样的事情。总而言之,如果它是可测试的,并且易于维护,那么您就有了解决方案的赢家,您不必担心。我唯一的建议是尝试不要为指令的每个应用程序创建新函数,而是创建100%基于收到的参数工作的函数