我基本上需要调用一个服务器,在加载控制器之前,它会返回一个JSON结构。
我使用了很多方法来存档,但它无法正常工作。它没有向我显示任何错误,页面空白。关于发生了什么的任何线索?
这是我的控制器..
angular
.module('app',[
'ngAnimate',
'ui.router',
'ui.bootstrap',
'ngCookies'
])
.run(function($rootScope) {
$rootScope.backendServer = "http://localhost:5000/";
})
.config(['$urlRouterProvider','$stateProvider', function($urlRouterProvider,$stateProvider) {
$stateProvider
.state('cms',{
url: '/my',
templateUrl: './app/templates/my.html',
controller : 'my',
resolve: {
dbState: function ($q) {
var defer = $q.defer();
Database.check().then(function (s) {
defer.resolve(s);
});
return defer.promise;
}
}
})
}])
.controller(function ($scope){
})
......这是我的服务:
angular
.module('app')
.factory('Database',['$http', '$rootScope','$q', function($http, $rootScope, $q) {
return {
check: function () {
var call = $rootScope.backendServer + 'cms/database/check';
return $http.get(call);
}
}
}]);
答案 0 :(得分:3)
defer
并返回工厂函数
另外,请注入Database
服务以解决
resolve: {
dbState: function(Database) {
return Database.check()
}
}
在控制器中像这样抓住它
.controller("ctrl", function($scope, dbState) {
console.log(dbState.data)
})