如何在Angularjs中创建这个全局常量,以便在控制器之间共享
How to create this global constant to be shared among controllers in Angularjs?
假设我想让这个变量成为Angularjs中控制器之间共享的常量;
$webroot = "localhost/webroot/app"
经过一番调查,服务似乎是解决问题的方法。但是什么是最好的方法呢?我是使用工厂、服务、价值还是其他东西?
angularjs-master-seed中的services.js在下面;
angular.module('myApp.services', []).value('version', '0.1');
我如何修改它有一个恒定的$webroot是控制器之间共享?
我可以做以下事情吗?
angular.module('myApp.services', [])
.value('version', '0.1')
.constant('webroot','localhost/webroot/app');
如果ok,我如何在控制器中调用它?
当你想要更多的常量时会发生什么?添加一个可以在任何需要的地方注入的配置对象怎么样?因为它是一个单一的文件,所以dev.config和prod.config文件也更容易在构建时交换进出。
app.factory('Config', function(){
return{
webRoot: "localhost/webroot/app",
moreSettings: "abc"
};
});
如果您的变量有一个常量值或设置一次value
是正确的选择。
你可以这样定义它:
app = angular.module('myApp', []);
app.value('$webroot', 'localhost/webroot/app');
现在你可以将服务注入到你的控制器中并使用它了:
app.controller('myController', ['$scope', '$webroot', function($scope, $webroot) {
$scope.webroot = $webroot;
}]);
编辑# 1
为了符合您的更新问题:您可以像使用值一样使用常量:
app = angular.module('myApp', []);
app.constant('$webroot', 'localhost/webroot/app');
app.controller('myController', ['$scope', '$webroot', function($scope, $webroot) {
$scope.webroot = $webroot;
}]);
相关文章:
- 在索引.html和应用.js [node.js] 之间共享变量
- Node.js上的WebSocket,并在所有连接的客户端之间共享消息
- 使用服务(AngularJS)在控制器之间共享数据
- AngularJS中的页面之间共享数据返回空
- 是否可以缓存可下载的文件,并在XHR和非XHR请求之间共享该缓存
- 在Knockoutjs中的ViewModels之间共享变量状态
- 通过共享服务在两个不同ng应用程序中的控制器之间共享数据
- Node.js服务器和浏览器之间共享二进制缓冲区
- 使用Angularjs在两个不同页面的控制器之间共享数据
- 在两个浏览器选项卡之间共享变量范围
- 不同进程之间共享Node.js环境
- 在Angular Bootstrap Modal和父控制器之间共享作用域
- 2ng控制器,并且需要在控制器之间共享数据
- Javascript创建函数,以便在其他函数之间共享变量
- 在控制器angular js之间共享数据
- 在javascript客户端和java服务器之间共享Google Analytics ClientID
- 如何将json文件中的数据提取到对象数组中,并在两个控制器之间共享
- Angular 2,在没有直接关系的两个组件之间共享一个对象
- 在angularJS中使用模态窗口时,在控制器之间共享对象数组
- 在角度上不同控制器之间共享状态