从数据库获取配置设置以在 angular 中跨应用共享
get config settings from database to share across app in angular
我正在尝试找出从我的数据库 table 检索我的配置设置并在我的应用程序中使用它们的最佳实践方法。我正在为 RESTful API 使用 PHP Slim。我不确定哪个更好?使用 $rootScope 或服务,以及处理它的最佳方法?
使用 SLIM 的示例。如果我想要配置的所有字段 table 我 运行 这个在控制器里面:
Data.get('config').then(function(data){
configs = data.data;
});
目前我有一项服务,但它不工作:
app.factory('dataShare', function($rootScope, $log, $http, Data) {
var configs = {};
Data.get('config').then(function(data){
configs = data.data;
});
return configs;
});
我需要能够在我的 postCtrl 中获取这些字段中的任何一个。
你正在毁掉你的推荐信。
app.factory('dataShare', function($rootScope, $log, $http, Data) {
var service = {};
Data.get('config').then(function(data){
service.configs = data.data;
});
return service;
});
然后在您使用 dataShare 的 controllers/other 服务中像 dataShare.configs 一样使用它们。
我更改了之前答案的一些内容,包括展示了应该如何调用打印输出,因为我们将异步行为继续到您的控制器中。
app.factory('dataShare', function($rootScope, $q, $log, $http, Data) {
var configs= {};
configs.getconfigs=function(){
var deferred = $q.defer();
Data.get('config').then(function(data){
deferred.resolve(data.data);
});
return deferred.promise;
}
return configs;
});
然后只要你注入了 q 并且这个控制器控制的页面有
就应该能够在你的控制器中调用它
<script src= "https://cdnjs.cloudflare.com/ajax/libs/q.js/2.0.3/q.min.js"></script>
然后调用这个。
dataShare.getconfigs().then(function(data){
console.log(data);
});
我正在尝试找出从我的数据库 table 检索我的配置设置并在我的应用程序中使用它们的最佳实践方法。我正在为 RESTful API 使用 PHP Slim。我不确定哪个更好?使用 $rootScope 或服务,以及处理它的最佳方法?
使用 SLIM 的示例。如果我想要配置的所有字段 table 我 运行 这个在控制器里面:
Data.get('config').then(function(data){
configs = data.data;
});
目前我有一项服务,但它不工作:
app.factory('dataShare', function($rootScope, $log, $http, Data) {
var configs = {};
Data.get('config').then(function(data){
configs = data.data;
});
return configs;
});
我需要能够在我的 postCtrl 中获取这些字段中的任何一个。
你正在毁掉你的推荐信。
app.factory('dataShare', function($rootScope, $log, $http, Data) {
var service = {};
Data.get('config').then(function(data){
service.configs = data.data;
});
return service;
});
然后在您使用 dataShare 的 controllers/other 服务中像 dataShare.configs 一样使用它们。
我更改了之前答案的一些内容,包括展示了应该如何调用打印输出,因为我们将异步行为继续到您的控制器中。
app.factory('dataShare', function($rootScope, $q, $log, $http, Data) {
var configs= {};
configs.getconfigs=function(){
var deferred = $q.defer();
Data.get('config').then(function(data){
deferred.resolve(data.data);
});
return deferred.promise;
}
return configs;
});
然后只要你注入了 q 并且这个控制器控制的页面有
就应该能够在你的控制器中调用它<script src= "https://cdnjs.cloudflare.com/ajax/libs/q.js/2.0.3/q.min.js"></script>
然后调用这个。
dataShare.getconfigs().then(function(data){
console.log(data);
});