欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

angular 1做项目时 报错TypeError: Cannot read property 'then' of undefined

程序员文章站 2022-07-03 10:38:03
...

项目配置 : 基于angular 1  ui-router.js做的跳转 

项目报错:TypeError: Cannot read property 'then' of undefined

报错代码: 是在conctroller中使用.then函数 ,service中$http.get函数请求数据时 时报的错。

View1Service.js中的代码

//service最适合做数据
angular.module("myApp")
.service("View1Service",['$http',function($http){
        this.getData =function(){
           $http.get("http://h5.yztctech.net/api/axf/apihome.php")

        }
    }])

View1Ctrl.js中的代码
angular.module('myApp')
    .controller("View1Ctrl",['$scope','View1Service',function($scope , View1Service){
        $scope.data=[];//数据 controller并适用于做数据的交互 这里交给service来处理
          View1Service.getData()
            .then(function(res){
               console.log(res)
            })
}]);
  报错原因: 说明通过View1Servioce拿到的不是一个 Promise,应该是这里没有把这个 promise 一路返回。

代码修改:

//service最适合做数据
angular.module("myApp")
.service("View1Service",['$http',function($http){
        this.getData =function(){
           return $http.get("http://h5.yztctech.net/api/axf/apihome.php")

        }
    }])
$http 是 AngularJS 中的一个核心服务,用于读取远程服务器的数据。
使用格式:
// 简单的 GET 请求,可以改为 POST
$http({
    method: 'GET',
    url: '/someUrl'
}).then(function successCallback(response) {
        // 请求成功执行代码
    }, function errorCallback(response) {
        // 请求失败执行代码
});