我在我的应用中使用AngularBooter for Angular。
这是我的代码:
emp.boot();
emp.services.SocialService = ['$http', '$q', function ($http, $q) {
var deferred = $q.defer();
$http.get('/api/feed').then(function (data) {
deferred.resolve(data);
});
this.getStatuses = function ()
{
return deferred.promise;
}
}];
emp.controllers.StatusesController = ['$scope','SocialService', '$interval', function($scope, SocialService, $interval) {
var statuses = SocialService.getStatuses();
statuses.then(function(data) {
$scope.statuses = data;
console.log($scope.statuses);
});
}];
根据我的理解错误:Error: [$injector:unpr]
表示服务未正确注册或实施,我尝试过一些事情,但仍然遇到同样的问题。任何想法。
答案 0 :(得分:0)
两个问题:
1)您在注册之前正在启动(至少在您提供的代码中)。在定义了所有内容之后,在底部做emp.boot()
。
2)您的服务没有返回任何内容。例如,如果你在服务函数的最底部添加return {};
,那么它应该不会再抛出错误,但你可能想要返回一些比这更有趣的东西。
您可以通过取消注释返回对象的行并查看Angular再次开始工作来查看此操作。 http://codepen.io/alex-wilmer/pen/QbwNGz?editors=101
我想你可能想要这样的东西:
emp.services.SocialService = ['$http', '$q', function ($http, $q) {
var deferred = $q.defer();
$http.get('/api/feed').then(function (data) {
deferred.resolve(data);
});
return {
getStatuses = function () { // don't mix brace placement!
return deferred.promise;
}
};
}];