存储应用程序configuration设置

在AngularJS中存储应用程序configuration设置的最佳位置是什么? 这可能是像应用程序常量,查找等,可以从控制器和服务或工厂使用。 我可以创build一个单独的服务,存储和检索这些东西,但我想知道是否有另一个适当的地方来存储和检索这些东西。

你可以使用constant()提供者!

app.constant('myAppConfig', {ver: '1.2.2', bananas: 6, hammocks: 3, bananaHammocks: true}); 

这与Terry的解决scheme并不完全不同,但是常量不会改变,所以它们在其他提供者之前被应用。 另外,这个模块可以注入你的configurationfunction。

 app.config(function(myAppConfig){ console.log(myAppConfig.bananaHammocks); }); 

玩的开心

不知道是否有一个“最好的方式”,但我个人使用的服务,这是一个简短的例子:

 angular.module('myApp').factory('AppSettings', function() { return { language: 'en' } }); angular.module('myApp').controller('myController', ['AppSettings', function(AppSettings) { $scope.language = AppSettings.language; } ]); 

您也可以使用provider而不是service并随处使用。

 angular.module('App', []).provider('config', function() { var conf = { ver: '1.2.2', bananas: 6, hammocks: 3, bananaHammocks: true, baseUrl:'data/' }; conf.$get = function () { delete conf.$get; return conf; }; return conf; }); 

然后在configuration中使用configProvider

 angular.module('App').config( function(configProvider) {} ); 

在运行中,控制器,服务等作为config

 angular.module('App').run( function(config) {} ); 

这里是一个示例链接和代码

定义:

 angular.module('starter.config', []) .constant('appConfig', { 'backend': 'http://localhost:3000/v1' }); 

用法:

 angular.module('starter.services', ['starter.config']) .factory('Locations', function(appConfig, $http) { return { all: function(successCb, errorCb) { $http.get(appConfig.backend + '/locations.json') .success(successCb) .error(errorCb); }, get: function(locationId, successCb, errorCb) { $http.get(appConfig.backend + '/locations/'+ locationId +'.json') .success(successCb) .error(errorCb); } }; }) 

添加这个可以访问一个全局variables

 app.run(function ($rootScope) { $rootScope.globalVariable = 'Amadou'; //global variable }); 

现在,如果你想从你的控制器使用它

 function appNameCtrl($scope, $rootScope){ $rootScope.globalVariable = 'Modji'; } 

在你看来

 My name is {{globalVariable}}