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
Angularjs 在解析范围变量之前运行解析查询的控制器_Angularjs_Angularjs Scope_Angularjs Controller_Angularjs Factory - Fatal编程技术网

Angularjs 在解析范围变量之前运行解析查询的控制器

Angularjs 在解析范围变量之前运行解析查询的控制器,angularjs,angularjs-scope,angularjs-controller,angularjs-factory,Angularjs,Angularjs Scope,Angularjs Controller,Angularjs Factory,我目前有一个仪表板,它有一个变量x,这在我的整个应用程序中都是必需的。我的dashboard.js中有一个工厂,它监听x的值以进行更改,并在需要时进行更新。dashboard.js首先运行并解析x。有几个页面在dashboard.js之后加载它们自己的控制器。这些页面侦听/使用变量x。我目前正在这些页面的控制器中运行解析查询,但是x显示为未定义,因此我无法在查询中使用它。如何仅在定义了x之后运行控制器?假设控制器之间的关系已经是父子关系,并且变量已在$scope上声明,则ChildControl

我目前有一个仪表板,它有一个变量x,这在我的整个应用程序中都是必需的。我的dashboard.js中有一个工厂,它监听x的值以进行更改,并在需要时进行更新。dashboard.js首先运行并解析x。有几个页面在dashboard.js之后加载它们自己的控制器。这些页面侦听/使用变量x。我目前正在这些页面的控制器中运行解析查询,但是x显示为未定义,因此我无法在查询中使用它。如何仅在定义了x之后运行控制器?

假设控制器之间的关系已经是父子关系,并且变量已在$scope上声明,则ChildController通常应继承该变量。没有任何代码,很难说

无论哪种方式,都可以使用$rootScope使该变量可访问。尽管这在技术上是可能的,但这通常不是您想要的方式

然后,您必须能够广播/发射,并在X发生变化时观看和处理事件。您还可以通过事件传输数据。我想这就是你已经在做的事情吧

您还可以创建一个注入到每个控制器中的服务,不管它们之间的关系如何,它可以跟踪您的变量。或者在您的情况下,您也可以将该功能分配给工厂

但是如果没有任何代码,很难判断您正在尝试做什么