json - 在 AngularJS 中读取本地文件

标签 json angularjs requirejs-text

我曾经使用 RequireJS 和 Backbone 并使用过 requirejs/textrequirejs-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/

相关文章:

javascript - 是否可以将对象用作可调用对象?

javascript - (8 超出范围 6)Underscore.js 模板

json - REST JSON API可选参数设计

jquery - 我在服务器上有一个 JSON 文件,我想通过搜索、排序和分页将其显示在 JQuery 数据表中

angularjs - Angular $scope.$apply 与 $timeout 作为安全的 $apply

android - 如何在 Android 应用程序中包含 Angular Material Design

javascript - Chartjs 中的条形图未正确分组

jquery - 显示 JSON 中包含的 URL 中的图像

javascript - array.forEach 和 angular.forEach 哪个更高效?

requirejs - 文案如何!插件使用baseUrl?