我是新手学习从我的角度应用程序的服务回拨结束电话,我正在从角度服务进行后端呼叫。
我从控制器调用服务中的函数。
我提供的其他服务不是我打的实际服务,由于某些原因我无法透露。我确信我所拥有的其他服务是有效的并且正在工作,因为我能够通过控制器点击它,这是一种不好的方式,所以这就是我想要将后端调用更改为服务。
以下是我的js文件。如果我做错了,请随时告诉我。
angular.module("myApp",[])
.controller("myCont", ['myService', function($http, myService){
var vm = this;
this.myUrl = "some rest service";
console.log("The controller");
vm.getDataInController = function() {
console.log("The function is called");
myService.getData(vm)
.success(function (custs) {
console.log("The data is obtained");
})
.error(function (error) {
console.log("some error occurred");
});
}
}])
.service('myService', ['$http', function ($http) {
this.getData = function (vm) {
console.log("control is in the service");
console.log(vm.myUrl);
$http({
type: 'GET',
url: vm.myUrl
// data is where we have the JSON returned in the form of OBJECT from the gis
}).then(function successCallback(response) {
console.log("the backend call worked");
}), function errorCallback(response) {
console.log("the backend call worked");
}
};
}])
;
我的Html文件是
<!DOCTYPE html>
<html >
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script src = "angular-min.js"></script>
<script src = "sampleOneScript.js"></script>
</head>
<body ng-app = "myApp" ng-controller = "myCont as main">
{{main.myUrl}}
<br>
<button type = "button" ng-click = main.getDataInController()>Click me </button>
</body>
</html>
我在控制台中收到的错误。
TypeError:无法读取未定义的属性“getData” 在vm.getDataInController(http://localhost:63342/exercise.weokspce/ng-repeat%20example/sampleOneScript.js:15:26) at fn(eval at(http://localhost:63342/exercise.weokspce/ng-repeat%20example/angular-min.js:212:87),:4:275) 在f(http://localhost:63342/exercise.weokspce/ng-repeat%20example/angular-min.js:252:82) at m。$ eval(http://localhost:63342/exercise.weokspce/ng-repeat%20example/angular-min.js:132:366) at m。$ apply(http://localhost:63342/exercise.weokspce/ng-repeat%20example/angular-min.js:133:60) 在HTMLButtonElement。 (http://localhost:63342/exercise.weokspce/ng-repeat%20example/angular-min.js:252:134) 在HTMLButtonElement.Hf.c(http://localhost:63342/exercise.weokspce/ng-repeat%20example/angular-min.js:35:137)
答案 0 :(得分:3)
问题可能是你没有正确注入&#34; myCont&#34;的所有依赖项。尝试更改行:
.controller("myCont", ['myService', function($http, myService){
使用:
.controller("myCont", ['$http', 'myService', function($http, myService){
并查看是否更正了事情