我想知道如何在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文件并在服务中使用它吗?
由于
答案 0 :(得分:1)
您可以使用$http.get
$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