1
我創建了一個用於獲取JSON數據的Angular工廠。我正在使用$resource
和get
方法從服務器檢索此JSON對象。該對象本身包含子對象。AngularJS - 如何使用我的控制器中使用Factory GET請求檢索的數據?
我一直在試圖利用我這個廠在我的控制器中檢索到的數據,但是當我打電話的$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
我不明白爲什麼我從服務器上檢索到的對象突然消失。
所以我不能使用異步加載的數據?那麼,如何在我的控制器中使用JSON數據,而不會在我稱之爲消失時使用? –
myData不會消失。當你將它分配給另一個變量時,它仍然是'未定義的'。與觀察者一起使用。 '$ scope。$ watch('myData',function(newVal){if(!newVal)return;/* use $ scope.myData)here * /}'。但是你已經有了承諾鏈,所以你可以在'then'內操作數據,這是數據已經存在的時刻。 – estus