[英]how do I access child elements of JSON in the controller in Angular JS
我不明白如何在我的控制器中将data.properties分配给$ scope之前等待资源调用完成。
这是我的困惑:
我有一个资源调用,返回此信息:
[
{
"PreAlertInventory": "5.000000",
"SharesInInventory": "3.000000",
"TotalSharesSold": "2.000000",
"TotalMoneySharesSold": "18.000000",
"TotalSharesBought": "0.000000",
"TotalShareCost": "0.000000",
"EstimatedLosses": "0.000000"
}
]
这是来自控制器的适用代码:
$scope.alertSwap = function () {
var data = Data.query(); // gets the data. works as expected
//$scope.test = data; //works as expected. can access data and properties in template
$scope.test = data.TotalMoneySharesSold; //does not work. is empty???
}
我可以从模板BUT访问数组及其属性,而不是从控制器内部访问。
如何从调用资源的控制器内部访问子元素?
http://plnkr.co/edit/JnLqq4v7lKlYOHg85Jma?p=preview
我需要为资源调用分配一个回调,并从函数中分配元素:
$scope.data = Data.query(myParams, function(data) {
$scope.test = data[0].TotalSharesBought;
});
您的数据似乎将作为数组返回,请尝试$scope.testTwo = data[0].TotalSharesBought
。
我相应地更新了你的Plunkr 。
如上所述,您可能正在获取这些数据异步。 我更新了您的代码以支持promise(这会使您的代码异步,并且可能不适合应用程序的其余部分)。
$timeout
模拟异步调用。 在您的factory service
:
var deferred = $q.defer();
$timeout(function() {
return deferred.resolve(data);
}, 100); // set it to zero to return immediately
return deferred.promise;
在您的controller
调用工厂工厂方法query()
并使用then
挂钩响应,这是片段的promise
部分:
Data.query().then(function(response) {
$scope.test = response[0].TotalMoneySharesSold;
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.