angularjs - 动态地将变量添加到每个控制器的范围

sha*_*hah 1 javascript angularjs

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

我可以在每个控制器中手动完成,如...

如果变量是

<script>
    var base_url ="http://localhost/myapp/";
</stript>
Run Code Online (Sandbox Code Playgroud)

然后

app.controller('myController',[$scope','$window',
    function($scope, $window) {
      $scope.base_url = $window.base_url;
    }
]);
Run Code Online (Sandbox Code Playgroud)

我也可以用$rootScopeservice

但我想动态地将此变量添加到每个控制器的范围.那么有什么办法可以做到这一点吗?

fbi*_*bid 5

可能的方法:

如果它比你需要传递给所有控制器的变量更常量,那么例如它是一个永远不会改变的URL你可以使用angular方法 constant

例:

app.constant('BASE_URL','http://localhost/myapp/');
Run Code Online (Sandbox Code Playgroud)

然后在每个控制器中注入它:

app.controller('Ctrl', ['$scope','BASE_URL' , function ($scope, BASE_URL){
  $scope.base_url = BASE_URL;
}])
Run Code Online (Sandbox Code Playgroud)

备择方案:

  • 服务
  • $ rootScope