从数据库获取配置设置,以角度分享应用程序

时间:2016-04-20 19:14:05

标签: javascript php angularjs slim

我正在尝试找出从数据库表中检索配置设置的最佳实践方法,并在我的应用中使用这些设置。我正在使用PHP Slim作为RESTful API。我不确定哪个更好?使用$ rootScope或服务,以及接近它的最佳方式?

使用SLIM的示例。如果我想要configs表的所有字段,我在控制器内运行它:

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中获取任何这些字段。

2 个答案:

答案 0 :(得分:1)

我从之前的回答中改变了一些内容,包括显示应该如何调用打印输出,因为继续执行到控制器的异步行为。

  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);
});

答案 1 :(得分:0)

你正在摧毁你的参考资料。

i="a001"
re="a[0-9]{3}"
if ! [[ $i =~ $re ]]; then
    echo "success"
fi

然后在您使用dataShare的控制器/其他服务中使用它们,如dataShare.configs。