对于Angular.js来说,我是一个大人物,我有一个问题,$ scope没有从两个$ resource rest调用之一获得额外的值。这是我的代码:
controller: function ($scope, $modalInstance, $route) {
$scope.server = {}
$scope.submit = function () {
//AddNewServer is a $resource service
AddNewServer.post($.param({
'name': $scope.server.name,
'ip': $scope.server.ip,
'port': $scope.server.port
}));
//ServerStats is a $resource service
ServerStats.postServerStats(function success(data) {
$scope.server.bytesIn = data.returnValue.bytesIn
}, function err(err) {
console.log("Error: " + err)
})
$modalInstance.dismiss('cancel');
$route.reload()
//BELLOW LOG RETURNS Object {name: "asd", ip: "asd", port: 2} NO bytesIn
console.log($scope.server)
}
$scope.cancel = function () {
$modalInstance.dismiss('cancel');
$route.reload()
};
}
问题是如何将我的其他服务调用中的bytesIn添加到我的服务器对象中?我确定这是一个非常明显的事情,但我还在学习阶段。提前谢谢。
答案 0 :(得分:1)
您的postServerStats()调用是异步的,因此很可能在console.log($ scope.server)语句之前未调用您的成功函数。
在分配$ scope.server.bytesIn后,将console.log($ scope.server)放入成功函数中。
也许你的意思是在postServerStats()回调中做更多的工作?
或者更好的是,请查看angular promises