我曾經使用RequireJS和Backbone,並使用requirejs/text和requirejs-plugins加載我通常用於配置的本地json文件。在AngularJS中讀取本地文件
AngularJS是如何實現的?
似乎每個人都建議使用$ http,但這是唯一的方法嗎? 如果我有20個配置文件,我真的需要撥打20個電話嗎?
也許類似ng-constant是「首選」的方式?
我曾經使用RequireJS和Backbone,並使用requirejs/text和requirejs-plugins加載我通常用於配置的本地json文件。在AngularJS中讀取本地文件
AngularJS是如何實現的?
似乎每個人都建議使用$ http,但這是唯一的方法嗎? 如果我有20個配置文件,我真的需要撥打20個電話嗎?
也許類似ng-constant是「首選」的方式?
這就是我所做的。但它使用$ http,所以我希望有人有更好的解決方案。
app.js:
var myModule = angular.module('myApp', []);
myModule.config(function($routeProvider, $locationProvider) {
$routeProvider.when('/', {
templateUrl: 'html/home.html',
controller: 'MainCtrl as ctrl',
resolve: {
initializeData: function($q, $timeout, myService) {
return myService.promiseToHaveData();
}
}
});
});
myService.js:
var myModule = angular.module('myApp');
myModule.service('myService', function($http, $q) {
var _this = this;
this.promiseToHaveData = function() {
var defer = $q.defer();
$http.get('someFile.json')
.success(function(data) {
angular.extend(_this, data);
defer.resolve();
})
.error(function() {
defer.reject('could not find someFile.json');
});
return defer.promise;
}
});
然後,我可以在任何地方注入爲myService,這將有來自JSON文件中的所有領域。
我想或者你可以只讓你上傳.json文件.js文件,讓他們暴露一個全局變量,並在您的index.html
你可以使用jQuery的getJSON函數引用它們?
E.g類似:
$.getJSON("config-1.json", function(data) {
// do whatever you want
});
不適合我 –
下面是一個使用的FileReader API的AngularJs服務:
20配置文件!?這是很多配置! –
是的。哦,它主要是標籤和類似的東西,或者像一大串(固定)匯率。 – user1241320