当我用于响应消息时,得到了未定义范围的错误:
$scope.responsemessage = response;
然后我在这里添加了$ scope:
app.service('fileUpload', ['$http', '$scope', function ($http, $scope) {
当我在上面添加$ scope时出现此错误错误:[$ injector:unpr] http://errors.angularjs.org/1.4.8/ $注射器/ unpr?P0 = .................
答案 0 :(得分:1)
服务没有范围。
如果你想在服务范围内使用范围,必须从控制器传递它。
喜欢这个
在控制器中
fileUpload.checkFile($scope.responsemessage);
在服务中
function checkFile(respMsg)
{
console.log(respMsg);
}
答案 1 :(得分:1)
$scope
不能从服务中获得,它只应在控制器内部使用。
答案 2 :(得分:1)
在角度$scope
中可用控制器,服务用作数据提供者的依赖项。
您无法在服务中使用$scope
,您可以从服务中返回承诺对象,如:
app.service('fileUpload', ['$http', function($http) {
return $http.post('url')
}]);
现在您可以注入此服务来更新控制器$scope
上的变量:
app.controller('cntrl', ['$scope', 'fileUpload', function($scope, fileUpload){
$scope.responsemessage = fileUpload.then(function(data){
return data;
})
}]);
答案 3 :(得分:0)
您不能在服务和工厂中使用$ scope。 您可以通过将$ scope值作为参数来调用服务,并将返回值保存到$ scope变量