我正在創建一個指令來顯示圖表。 我通過一個指令創建模塊的常用模板。對於配置,我決定使用提供者。 我瞭解如何讓應用程序通過提供程序設置我的模塊配置。Angular JS中的動態配置
但是,我有一個用例是配置可以根據用戶的偏好在運行時更改。 如何讓我的模塊爲客戶端API在運行時修改配置提供一種方法?
是否可以將ProviderConfiguration注入到客戶端控制器中?這種方法是否存在重大缺陷?
當前的代碼模板看起來像這樣
//Provider
angular.module('foobar', []).provider('foobarConfig', [function() {
var config = {
//config properties here.
}
var configurationProvider = {
//Getters and Setters that work on 'config'.
setProperty(prop, value) {
if(config[prop] !== undefined) {
config[prop] = value;
}
},
getProperty(prop) {
return config[prop];
},
$get: function() {
return this;
}
}
return configurationProvider;
}
//Chart Directive.
angular.module('foobar').directive('foobarChart', ['foobarConfig', function(foobarConfig) {
//Can use the foobarConfig here.
}]);
angular.module('clientApp', [ 'foobar'])
.config(['foobarConfigProvider', function(foobarConfigProvider) {
//Can provide the initial configuration to the module here.
foobarConfigProvider.setProperty("foo", "bar");
}]);
angular.module('clientApp').directive('clientFoo', function() {
//What should be done to change foobarConfig here?
});
感謝您使用'常量'選項。 – Serendipity