亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我正在嘗試從 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 關注
  • 175 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號