角度中的对象数组不起作用

时间:2018-01-09 08:41:15

标签: angularjs foreach

我遇到两个对象的问题。

第一个对象usersHotel

usersHotel:[
   {id:0, linked:false,hotel:
     {code:1, namehotel:'r1'}
   },
   {id:1,linked:false,hotel:
      {code:2, namehotel:'n1'}
   },
   {id:2, linked:false,hotel:
     {code:3, namehotel:'a1'}
   }
] 

第二家酒店

hotels:[ 
  {code:1, namehotel:'r1'},
  {code:2, namehotel:'n1'},
  {code:3, namehotel:'z1'},
  {code:4, namehotel:'t1'}
]

我想从

中显示这个元素
hotels :[
   {code:3, namehotel:'z1'},
   {code:4, namehotel:'t1'}
] 

这意味着两个对象数组不常见:

这是我的代码:

var hotelsName=[];
$scope.getHotelByUserName = function (id) { 
  UsersService.getHotelByUserName(id).then( function(data){
    $scope.usersHotel=data;
      if( $scope.userHotels != null){
        angular.forEach($scope.userHotels, function(value,index) {
          angular.forEach($scope.hotels  , function(hotel,key){
            if(hotel.code!=value.hotel.code){
              $scope.hotelsName.push(hotel);
            }  
          }); 
        });
      }      
  }).catch( function onFail(errorResponse) { 
      console.error('Error while getting Hotel By User Name');
      console.log(errorResponse);
  });
};

我有一个问题,即hotelsName对象的push函数没有取值,我得到一个空对象。真的不明白为什么?任何帮助都要提前感谢。

1 个答案:

答案 0 :(得分:0)

小事快速纠正

只需将var hotelsName = []更新为$scope.hotelsName=[];

即可
$scope.hotelsName=[];
$scope.getHotelByUserName = function (id) { 
  UsersService.getHotelByUserName(id).then( function(data){
    $scope.usersHotel=data;
      if( $scope.userHotels != null){
        angular.forEach($scope.userHotels, function(value,index) {
          angular.forEach($scope.hotels  , function(hotel,key){
            if(hotel.code!=value.hotel.code){
              $scope.hotelsName.push(hotel);
            }  
          }); 
        });
      }      
  }).catch( function onFail(errorResponse) { 
      console.error('Error while getting Hotel By User Name');
      console.log(errorResponse);
  });
};