Angular对象返回引用变量而不是值,除非直接在控制器中调用

时间:2017-01-09 18:30:59

标签: javascript html angularjs debugging

问题:

角度控制器中的对象返回引用变量而不是object属性的值。当我直接在其中一个控制器内部调用该属性时,它会正确返回,但是当我在前端执行相同操作时,它会返回引用变量而不是属性值。

编辑批次控制器的功能

this.edit = function(lotId){
    lotService.getById(lotId).then(function(response){
        console.log(response.data[0]);
        console.log(response.data[0].Lot.id);
        lotService.broadcastSubLotChange(response.data[0]);
            ...
    });
}

编辑功能控制台日志

console logs

请注意,对象中返回的属性值与直接调用时的值不同

其他信息:

批量服务广播功能

 this.broadcastSubLotChange = function(subLot){
        this.sublot=subLot;
    }

表单控制器广播侦听器

$scope.$on('sublotChange', function() {
        $scope.lot=lotService.sublot;
        if($scope.lot.Lot==null){
            $scope.lot={'Lot':{'parentLot':{'Lot':{'id':lotService.lot.Lot.id}}}};
        }   

        console.log(lotService.sublot);
        console.log("sublot: "+$scope.lot.Lot.id);
        console.log("lot: "+$scope.lot.Lot.parentLot.Lot.id); 
  });

表单控制器侦听器日志

console logs

角度变量的HTML调用

  • {{lot.Lot}}正确返回" id":" {{lot.Lot.id}}"
  • {{lot.Lot.parentLot.Lot.id}}正确返回755
  • {{lot.Lot.id}}返回{{lot.Lot.id}}

0 个答案:

没有答案