【发布时间】:2016-08-15 09:26:42
【问题描述】:
我有一个使用 ngRoute 生成 SPA 的应用程序。在完成从数据库中获取数据之前,我不想加载视图。以下方法有效,但我无法将返回数据传递给我的控制器。
角度服务:
angular.module('routeService',[])
.factory('dataFetch', function($http, $q){
var deferred = $q.defer();
var factory = {}
factory.getProposals = function(){
return $http.get('urlHere')
.then(function(response){
//promise is fulfilled
deferred.resolve(response.data);
console.log("readched the bio service!" + response.data);
//promise is returned
// return deferred.promise;
return response.data;
}, function(response){
deferred.reject(response);
//promise is returned
return deferred.promise;
});};
return factory;
});
角度控制器:
var login = angular.module('login', ['ngRoute', 'routeService'])
// configure our routes
login.config(function($routeProvider,$locationProvider) {
$routeProvider
// route for the home page
.when('/', {
templateUrl: '/overview.html',
controller: 'login',
resolve: {
myDta: function(dataFetch){
return dataFetch.getProposals();
}
}
})
});
login.controller('login', function($scope, myDta){
$scope.prop = myDta
})
我收到以下错误:
Unknown provider: myDtaProvider <- myDta <- login
【问题讨论】:
-
除了一些不良的承诺实践之外,我认为您的代码没有真正的问题。您是否在
index.html文件中包含了routeService.js? -
@MuliYulzary 你能解释一下不好的做法吗?
标签: javascript html angularjs angular-services ngroute