为了账号安全,请及时绑定邮箱和手机立即绑定

我正在尝试从 Angular js 中的 http 请求返回一些数据,但它给出了一个未定义的

我正在尝试从 Angular js 中的 http 请求返回一些数据,但它给出了一个未定义的

PHP
喵喔喔 2022-01-14 16:57:59
这是调用服务以获取酒店的 Angular js 控制器   vm.getTopHotels =  function(){         var hotelsLimit =  10;         var top_hotels =          dataService.getHotels()          .then(function(hotels){             console.log('adf');              sortHotels = commonMethods.sortHotels(hotels.data.data,'Rating','SORT_DESC');               hotelDetailsCheck = checkDetailsIfExists(sortHotels);              //Get only top 10 hotels for home page              top_hotels =  hotelDetailsCheck.slice(0,10);              vm.topHotels =  top_hotels;          },          function(data){              console.log('Failed to get Hotels');          });      };     vm.getTopHotels();** 这里是调用 Http get 请求以获取数据的 dataService,但在控制器中,它给了我未定义的结果,所以 datsService 返回方法有问题,因为我认为它没有返回 **(function(){      angular       .module('app')       .factory('dataService',DataFactory);       DataFactory.$inject = ['$http','$q']       function DataFactory($http,$q){          var service = {              hotels:[],              getHotels:getHotels,              saveHotels:saveHotels          };           return service;          function saveHotels(){            var def = $q.defer();             $http.get('/hotels/saveHotelsData')              .then(function successCallback(data){                    def.resolve(data);               },function errorCallback(data){                  def.reject('Something went down :(');               });               return def.promise;          }         function getHotels(){            // var def = $q.defer();           return  $http.get('/hotels/getHotelsData')               .then(function successCallback(data){                   service.hotels = data;                });          }       }})();
查看完整描述

1 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

// ...

.then(function(data) {

    console.log('adf');

    sortHotels = commonMethods.sortHotels(hotels.data.data,'Rating','SORT_DESC'); 

是什么hotels?它没有在任何地方声明。如果hotels应该是来自 API 的响应,那么应该这样声明:


.then(function(hotels) {

    console.log('adf');

    sortHotels = commonMethods.sortHotels(hotels.data.data,'Rating','SORT_DESC'); 

更新:您getHotels通过没有返回语句的函数传递结果,因此将解析为未定义。应该


         function getHotels(){

           return  $http.get('/hotels/getHotelsData')

               .then(function successCallback(data) {

                   service.hotels = data;

                   return data;

                });

          }


查看完整回答
反对 回复 2022-01-14
  • 1 回答
  • 0 关注
  • 184 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号