0

我有 3 个 json 文件来构建我的网络应用程序的前端:

  1. config.json 根据用户权限获取所有选项
  2. options.json 是用户的偏好
  3. foo.json 这是用户将修改的对象,感谢网络应用程序

在我的主控制器中,配置或运行(我不知道什么是最好的方法),我想加载所有这些 json 并将它们存储在 $rootScope 中以在 HTML 页面中构建我的组件的所有实例。

我已经尝试过这样做...

$http.get('config/config.json').success(function(configResponse) {
  $rootScope.config = configResponse;
});
$http.get('preferences/preferences.json').success(function(prefResponse) {
  $rootScope.preferences = configResponse;
});
$http.get('foo/foo.json').success(function(fooResponse) {
   $rootScope.foo = fooResponse;
});
console.dir($rootScope);

不幸的是,这不起作用。有人有一个想法和最好的方法在 Angular 1.5 中实现它,这将促进 Angular 2.0 的过渡?

4

1 回答 1

0

不要使用 $rootScope,对于应用程序配置,建议使用具有配置信息的特定模块并将每个配置块注册为“常量”。

在您的情况下,服务器端配置变得更加复杂。请参阅 使用服务器端数据异步引导 AngularJS 应用程序

(function() {
    var appConfig=angular.module("app.config");
    var initInjector = angular.injector(["ng"]);
    var $http = initInjector.get("$http");

    $http.get('config/config.json').success(function(configResponse) {
       appConfig.constant("config", configResponse);
    });
   $http.get('preferences/preferences.json').success(function(prefsResponse {
       appConfig.constant("preferences", preferencesResponse);
    });


})());

在您的应用程序模块中包含app.config然后您可以将其注入config,preferences or foo到您的角度控制器、服务、...

angular.module("app",["app.config"])
于 2016-04-29T21:56:47.207 回答