在加载构造函数之前注入一个常量

时间:2018-06-28 14:23:42

标签: angularjs

在加载控制器之前,我需要一个常量来准备。这是我尝试过的(非常):-

    $stateProvider.state("landing", {
            templateUrl : "/landing/landingTemplate.html",
            url : "/landing",
            controller : "landingController",
            resolve : {
                returnState = function getReady() {
                    $http.get("data/Config.json").then(function(response) {
                        callGuiConfig = response.data;
                        callApp.constant('callGuiConfig', callGuiConfig);
                        return "ready";
                    });
                }
            }

但是我得到了这个错误:-

  

未捕获到的SyntaxError:速记属性初始化程序无效

in line:returnState = function getReady() {

我使用解析器的方式错误吗?

2 个答案:

答案 0 :(得分:0)

这是处理常量的官方方法。

angular.module('app', []);

app.constant('MOVIE_TITLE', 'The Matrix');

.controller('MyController', function (MOVIE_TITLE) {
  expect(MOVIE_TITLE).toEqual('The Matrix');
});

您将对第二行感兴趣,剩下的只是为了举例。 请注意,常量可以对象,数组等。不仅是字符串。

以这种方式制成的常量的特征是: 这是一个单例,它不可实例化,并且不可配置

如果您需要装饰员可以管理和更改的内容,则需要.value()

有关该提供商和其他提供商的更多信息: https://gist.github.com/demisx/9605099

答案 1 :(得分:0)

$stateProvider.state("landing", {
    templateUrl : "/landing/landingTemplate.html",
    url : "/landing",
    controller : "landingController",
    resolve : {
        returnState : ['$http','callApp', function($http, callApp) {
            return $http.get("data/Config.json").then(function(response) {
                var callGuiConfig = response.data;
                //what is callApp??
                callApp.constant('callGuiConfig', callGuiConfig);
                return "ready";
            });
        }]
    }
};

什么是callApp?我假设它的服务设置/获取常量。如果没有,请从注入的参数中将其删除。