Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.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,我想在所有控制器的范围内添加一个全局可行的 我可以在每个控制器中手动执行,如 如果变量为 <script> var base_url ="http://localhost/myapp/"; </stript> 我也可以使用$rootScope或服务 但是我想动态地将这个变量添加到每个控制器的作用域中。所以,有什么可能的方法可以做到这一点吗?有一个基本标记,它支持angular,以确保javascript模板中的每个URL,$http,。。。将相对于那个。所以你可

我想在所有控制器的范围内添加一个全局可行的

我可以在每个控制器中手动执行,如

如果变量为

<script>
    var base_url ="http://localhost/myapp/";
</stript>
我也可以使用$rootScope或服务

但是我想动态地将这个变量添加到每个控制器的作用域中。所以,有什么可能的方法可以做到这一点吗?

有一个基本标记,它支持angular,以确保javascript模板中的每个URL,$http,。。。将相对于那个。所以你可以直接使用它:$location

其他途径包括:

$rootScope,如您所述 事件,所有控制器都要求该值可以侦听特定事件以获取新值。 服务$watch为value或再次使用事件 如果它没有改变,并且您可以知道引导时的值,那么您可以使用angular.constant来定义,然后注入一个常量balue。不过,这一条似乎不适合你。 有一个基本标记支持angular,以确保javascript模板中的每个URL,$http,。。。将相对于那个。所以你可以直接使用它:$location

其他途径包括:

$rootScope,如您所述 事件,所有控制器都要求该值可以侦听特定事件以获取新值。 服务$watch为value或再次使用事件 如果它没有改变,并且您可以知道引导时的值,那么您可以使用angular.constant来定义,然后注入一个常量balue。不过,这一条似乎不适合你。 可能的解决办法:

如果它是一个常数而不是一个变量,你需要传递给所有的控制器,例如,它是一个永远不会改变的URL,你可以使用角度常数法

例如:

app.constant('BASE_URL','http://localhost/myapp/');
然后在每个控制器中注入:

app.controller('Ctrl', ['$scope','BASE_URL' , function ($scope, BASE_URL){
  $scope.base_url = BASE_URL;
}])
备选方案:

服务 $rootScope 可能的解决办法:

如果它是一个常数而不是一个变量,你需要传递给所有的控制器,例如,它是一个永远不会改变的URL,你可以使用角度常数法

例如:

app.constant('BASE_URL','http://localhost/myapp/');
然后在每个控制器中注入:

app.controller('Ctrl', ['$scope','BASE_URL' , function ($scope, BASE_URL){
  $scope.base_url = BASE_URL;
}])
备选方案:

服务 $rootScope
控制器输入的另一种选择是ng init指令。


控制器输入的另一种选择是ng init指令。