AngularJS-我如何使用在我的控制器中使用Factory GET请求检索的数据

AngularJS - How can I use the data retrieved using a Factory GET request in my controller?

本文关键字:GET Factory 请求 检索 数据 何使用 控制器 我的 AngularJS-      更新时间:2023-09-26

我创建了一个用于获取JSON数据的Angular工厂。我使用$resourceget方法从服务器检索这个JSON对象。对象本身包含子对象。

我一直试图在我的控制器中使用我用这个工厂检索到的数据,但当我调用$scope变量时,我得到了这个的一些变体

无法读取未定义的属性propertyName。

当我将属性记录到控制台时,我可以读取它,所以我不明白它为什么会消失。为了诊断它,我尝试通过引用传递另一个变量。

问题是,我可以通过记录控制台来找到对象及其密钥。问题是,当我尝试使用这些数据时,对象键变成了undefined。我不知道为什么会发生这种事。

 NewOrder.get({"id": $stateParams.loopId, "orderId": $stateParams.orderId}).$promise.then(function(order) {
    $scope.myData = order["data"];
    console.log("this is an order", order);
});

这是我的工厂

angular.module('myApp')
    .factory('NewOrder', function($resource) {
        return $resource('/api/loops/:id/orders/:orderId');
    });

我发现,如果我创建一个新变量并将其设置为myData的值,那么键中的对象就会消失。

这适用于

$scope.getOrder = function() {
    console.log($scope.myData);
}
=> Object {recruitingLeague: "NAHL", playerPosition: "LeftDefense", playerDOB: Object, playerHeight: Object, playerWeight: Object…}

创建一个新变量并通过引用传递上一个变量的值(用于诊断目的(是不可能的。

$scope.newData = $scope.myData;
$scope.getOrder = function() {
    console.log($scope.newData);
}
=> undefined

我不明白为什么我从服务器上检索的对象突然消失了。

服务是异步的,所以时不存在$scope.myData

$scope.newData = $scope.myData;

发生,但时已经存在

$scope.getOrder = function() {
    console.log($scope.myData);
}

被调用。