Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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
AngularJS-如何在指令模块化且可重用的情况下,将从控制器到指令的传递信息写入另一个控制器?_Angularjs - Fatal编程技术网

AngularJS-如何在指令模块化且可重用的情况下,将从控制器到指令的传递信息写入另一个控制器?

AngularJS-如何在指令模块化且可重用的情况下,将从控制器到指令的传递信息写入另一个控制器?,angularjs,Angularjs,这是AngularJS。我目前面临的问题是这个 我有控制器中可用的数据,我们称之为C1。在该控制器包含的HTML中,有一个按钮链接到名为D1的指令。当该指令被激发时,它将注入HTML代码,该代码基本上在视觉上模拟lightbox,但不是模态。该灯箱由另一个名为C2的控制器控制 我想做的是,在C1中,有一些数据需要C2接收。我正在考虑使用D1作为C1触发C2的桥梁,所以逻辑上,数据可能必须通过它传输?还是这样?是否有其他可能且更有效/稳定的方法?D1和C2的问题在于它们必须是模块化的,并且必须在其

这是AngularJS。我目前面临的问题是这个

我有控制器中可用的数据,我们称之为C1。在该控制器包含的HTML中,有一个按钮链接到名为D1的指令。当该指令被激发时,它将注入HTML代码,该代码基本上在视觉上模拟lightbox,但不是模态。该灯箱由另一个名为C2的控制器控制

我想做的是,在C1中,有一些数据需要C2接收。我正在考虑使用D1作为C1触发C2的桥梁,所以逻辑上,数据可能必须通过它传输?还是这样?是否有其他可能且更有效/稳定的方法?D1和C2的问题在于它们必须是模块化的,并且必须在其他地方重用

现在,在其他地方使用的位置,比如另一个名为C3的控制器,可能没有与C1位于同一范围内的数据。我需要的数据可能位于使用此指令的父范围的子范围中,所以我不能只使用范围


基本上,我应该如何编写绑定到按钮元素的指令,当单击按钮元素时,正确的数据将从包含按钮的控制器传递到指令,然后指令启动并插入lightbox HTML代码,并将数据传递到lightbox使用的控制器?这必须在不使用作用域的情况下完成,因为数据可能直接存在于父作用域中,也可能不存在于父作用域中,并且不使用服务,并且数据不存在于HTML中。这就像一个包含数据束的对象一样

通常,建议使用服务在控制器之间进行通信。请参见中如何实现$modal。通常,控制器不应该知道指令,因为指令存在于视图中,并且控制器与视图无关欢迎使用stackoverflow。控制器之间通信的标准方式是使用服务。您可以在控制器和向指令传递回调的指令之间通信,也可以广播和侦听事件。正如目前所说的,这个问题可能太广泛了——我每天都会看到重复的问题——事实上,我在右边看到一长串相关问题。我建议使用一项服务,但是,我的主管建议不要使用这项服务,尽管为此,他希望直接通过。我已经看到了其他答案,但大多数都使用范围、控制器或属性。我确实认为,在这种情况下,范围是不可能的,因为数据可能直接存在于父范围中,也可能不存在于父范围中,并且只能在控制器中确定。IDK关于使用controller或attr。如果您的主管有一个您不熟悉的特定要求,这与执行任务的标准方式不同,那么他们可能需要告诉您更多关于他们期望的内容以及原因的信息?