在加载控制器之前,我需要一个常量来准备。这是我尝试过的(非常):-
$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() {
我使用解析器的方式错误吗?
答案 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?我假设它的服务设置/获取常量。如果没有,请从注入的参数中将其删除。