我曾经使用 RequireJS 和 Backbone 并使用过 requirejs/text和 requirejs-plugins加载我通常用于配置的本地 json 文件。
如何使用 AngularJS 实现相同的目标?
每个人似乎都建议使用 $http,但这是唯一的方法吗?
如果我有 20 个配置文件,我真的需要调用 20 次电话吗?
也许像 ng-constant是“首选”的方式吗?
最佳答案
这就是我所做的。但它虽然使用 $http,所以我希望有人有更好的解决方案。
应用程序.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();
}
}
});
});
我的服务.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;
}
});
然后我可以在任何地方注入(inject) myService ,它将包含 json 文件中的所有字段。
我想你也可以把你的 .json 文件变成 .js 文件,让它们公开一个全局变量,然后在你的 index.html 中引用它们
关于json - 在 AngularJS 中读取本地文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21589340/