我跟着教程学angularjs,跟教程一样组织代码后访问页面报错如下:
angular.js:13708 ReferenceError: $q is not defined
at handleRequest (news.client.service.js:8)
at Object.list (news.client.service.js:27)
at Scope.NewsController.$scope.loadNews (news.client.controller.js:9)
at new NewsController (news.client.controller.js:18)
at Object.invoke (angular.js:4709)
at $controllerInit (angular.js:10234)
at nodeLinkFn (angular.js:9147)
at compositeLinkFn (angular.js:8510)
at compositeLinkFn (angular.js:8513)
at publicLinkFn (angular.js:8390)
源代码:
angular.module('webapp').service("NewsService",["$http","$q",NewsService]);
function NewsService($http) {
function handleRequest(merhod,url,data) {
var defered = $q.defer();
var config = {
method:method,
url:url
}
if("POST" === method){
config.data = data
}else if("GET" === method){
config.params =data
}
$http(config).success(function (data) {
defered.resolve(data);
}).error(function (err) {
defered.reject(err)
});
return defered.promise;
}
return{
list:function (params) {
return handleRequest('GET','/news',params)
},
save:function (data) {
return handleRequest('POST','/news',data)
},
detail:function (id) {
return handleRequest('POST','/news'+ id)
}
}
}
请问如何处理,新手轻拍。。。
你写法的问题,要把
$q
注入到服务中去