AngularJs 错误:$http请求虽然在控制器中定义
AngularJs Error : $http request though defined in controller
我有以下代码,其中我调用.php服务来返回数据,这些数据稍后将更新我的模型和视图。虽然,我在控制器中注入了服务名称和http,但它仍然给我错误。
.HTML:
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.min.js"></script>
</head>
<body ng-app="myApp" ng-controller="myCtrl">
<button ng-click="changeIt()">Change Name</button>{{name}}
<script>
//Module declaration
var app = angular.module('myApp',[]);
//controller declaration
app.controller('myCtrl', function($scope, getName, $http){
$scope.name = "Peter";
$scope.changeIt = function(){
getName.getTheName()
.success(function(data) {
$scope.name = data.name;
});
}
});
//Service Declaration
app.service('getName',function(){
return {
getTheName: function() {
return $http({
url: 'hello.php',
method: 'Post',
headers: {
'Content-Type': 'application/json'
}
});
},
}
});
</script>
</body>
</html>
.PHP:
<?php
echo $data=json_encode(array('name'=>'Lara'));
?>
有人可以帮助我解决问题吗?
$http应该在服务中定义,而不是在控制器中定义
app.service('getName',function($http){
您也需要将其注入服务中
app.service('getName',function($http){
return {
getTheName: function() {
return $http({
url: 'hello.php',
method: 'Post',
headers: {
'Content-Type': 'application/json'
}
});
},
}
});
您必须在
服务中注入$http getName
使用它。
相关文章:
- 当显式定义控制器参数时,默认模型绑定器会发生异常
- $routeParams在传递到新视图时未定义&控制器
- Http服务工厂将未定义的返回到Angular中的控制器
- 角度指令控制器:参数不是函数,未定义
- 注入应用程序的角度控制器未定义
- 如何正确地将数据从自定义服务传递到角度控制器
- 如何在angular ui模态控制器中定义函数
- AngularJS:如何调用指令中定义的函数'控制器的作用域
- 未定义的控制器AngularJS
- 如何在来自另一个文件的控制器中定义变量
- 在自定义角度指令中使用控制器
- 使用 ng-model 定义变量之间的区别,而不是通过 AngularJS 中的控制器定义变量
- 为什么我的AngularJS控制器定义和标记没有按预期工作?-<控制器>不是函数错误
- 测试Angular控制器定义为Angular .module('myApp').controller(.
- 在es6类中为angular 1.5控制器定义常量
- 以下agularjs控制器定义的区别是什么?
- AngularJS:浏览器忽略我的控制器定义(依赖注入)
- 如何在angularjs中从app.js内部的控制器定义变量
- AngularJS指令控制器定义
- 将控制器定义为通用对象而不是函数是不是一种糟糕的做法