如何在AngularJS中的多个模块之间共享变量

如何在AngularJS中的多个模块之间共享变量,angularjs,angularjs-scope,angularjs-controller,Angularjs,Angularjs Scope,Angularjs Controller,我不熟悉AngularJS,了解基本原理。然而,我现在有一个案例,我还不知道如何找到解决方案 让我简单地向你解释一下这个案例。假设你有一家超市网店,那里有一个输入框,你可以在其中键入来搜索你的食物。在输入框旁边,有一个图标,显示所有最点的食物的点击模式 此模式有自己的控制器,inputbox所在的搜索面板有自己的控制器 现在,当一种食物卖完时,它会在模式中被删除。但是,当每一种流行的食物都卖完时,我不希望模式在点击时显示 我以为我可以给模态的作用域分配一个变量,但是我无法在搜索栏的作用域中访问它

我不熟悉AngularJS,了解基本原理。然而,我现在有一个案例,我还不知道如何找到解决方案

让我简单地向你解释一下这个案例。假设你有一家超市网店,那里有一个输入框,你可以在其中键入来搜索你的食物。在输入框旁边,有一个图标,显示所有最点的食物的点击模式

此模式有自己的控制器,inputbox所在的搜索面板有自己的控制器

现在,当一种食物卖完时,它会在模式中被删除。但是,当每一种流行的食物都卖完时,我不希望模式在点击时显示

我以为我可以给模态的作用域分配一个变量,但是我无法在搜索栏的作用域中访问它。我想我可以使用rootScope,但我真的很想知道是否有更好的解决方案

提前谢谢,如果你需要更多信息,请告诉我


adev

我建议您可以在食物对象/var上使用$watch,如果发生任何变化$broadcast将您的变化传播给所有人,然后在您的子控件/模式控件中使用$on捕捉它


希望这有帮助

我建议您可以在食物对象/var上使用$watch(如果发生任何更改)$将您的更改广播给所有人,然后在您的子控件/模式控件中使用$on捕捉它

希望这有帮助

看一看

Angular服务是使用依赖项注入(DI)连接在一起的可替换对象。您可以使用服务在应用程序中组织和共享代码

另外:

看一看

Angular服务是使用依赖项注入(DI)连接在一起的可替换对象。您可以使用服务在应用程序中组织和共享代码

另外:


您可以创建一个控制器并在控制器之间共享数据。我完全无法理解为什么您需要在两个不相关的控制器之间共享一个变量,以防止在单击链接时出现模式。在我看来,这两个问题是完全正交的。如果您有父/子控制器关系,那么子控制器可以通过$scope.$parent.xyz访问父控制器的作用域。例如:。您可以创建一个控制器并在控制器之间共享数据。我完全无法理解为什么您需要在两个不相关的控制器之间共享一个变量,以防止在单击链接时出现模式。在我看来,这两个问题是完全正交的。如果您有父/子控制器关系,那么子控制器可以通过$scope.$parent.xyz访问父控制器的作用域。例如:。