使用单独的设置json文件

时间:2014-09-25 15:09:13

标签: angularjs

我想知道如何在Angularjs中使用单独的文件来设置数据。

例如,我的服务中的语言越来越多,如下所示:

.service('Language', function () {
  this.getLanguageSettings = function(lang){
    switch(lang) {
      case 'english':
            code = 'en';
      case 'french':
            code = 'fr';
      ... //lots more languages here
    }
    return {code: code};
  }

})

我可以以某种方式导入languages.json文件并在服务中使用它吗?

由于

3 个答案:

答案 0 :(得分:1)

您可以使用$http.get

加载 JSON 文件
$http.get('file.json').then(function(response) {
    $scope.data = response.data;
}, function(response) {
    $scope.data = response.data || "Request failed";
});

答案 1 :(得分:1)

.service('Language', function ($http) {
  this.getLanguageSettings = function(lang){
    var d = $q.defer();
    $http.get('file.json').then(function(response){
      var code;
      switch(lang) {
        case 'english':
            code = 'en';
        case 'french':
            code = 'fr';
        ... //lots more languages here
      }
      if(code !== undefined) {
        d.resolve({code: code});
      } else {
        d.reject("something went wrong");
      }
    });
    return d.promise;
  }
})

然后实施,你可以这样做:

.controller('SomeController', function(Language, $log){
  Language.getLanguageSettings().then(function(data){
    $log.debug(data);
  });
});

答案 2 :(得分:1)

创建一个名为settings.js的文件(并在index.html中导入),如下所示:

angular.module('myApp').constant('settings', {
    "english": "en",
    .....
})

并注入"设置"在你的控制器...... 然后,您可以使用settings.english