Javascript 角度对象如何获取另一个对象的值
如何使对象继承其他对象的所有属性 代码如下:Javascript 角度对象如何获取另一个对象的值,javascript,arrays,angularjs,object,angularjs-scope,Javascript,Arrays,Angularjs,Object,Angularjs Scope,如何使对象继承其他对象的所有属性 代码如下: this.makeReady = function(order) { var tempOrder = angular.copy(order); tempOrder.status = 1; angular.forEach(tempOrder.items, function(item){ item.status = 1; }) return $http.put('/rest/change/invoi
this.makeReady = function(order) {
var tempOrder = angular.copy(order);
tempOrder.status = 1;
angular.forEach(tempOrder.items, function(item){
item.status = 1;
})
return $http.put('/rest/change/invoice/'+order.id+'/', tempOrder).success(function(){
order = tempOrder; // this doesn't work
});
}
如果成功:更改该对象的值。使用此选项
this.makeReady = function(order) {
var tempOrder = angular.copy(order);
tempOrder.status = 1;
angular.forEach(tempOrder.items, function(item){
item.status = 1;
})
$http.put('/rest/change/invoice/'+order.id+'/', tempOrder).success(function(){
order = tempOrder; // this doesn't work
return order;
});
}
或者使用回调函数
this.makeReady = function(order, callback) {
var tempOrder = angular.copy(order);
tempOrder.status = 1;
angular.forEach(tempOrder.items, function(item){
item.status = 1;
})
$http.put('/rest/change/invoice/'+order.id+'/', tempOrder).success(function(){
order = tempOrder; // this doesn't work
callback(order)
});
};
调用函数
this.makeReady({status:1, data:2, items:{status:1}}, function(data){
// this data your order variable in service
})
尝试直接编辑
$scope.allOrders
中的顺序,看看这是否能让您获得所需的行为
this.makeReady = function (order) {
var tempOrder = angular.copy(order);
var orderIndex = $scope.allOrders.indexOf(order);
tempOrder.status = 1;
angular.forEach(tempOrder.items, function(item) {
item.status = 1;
});
return $http.put('/rest/change/invoice/' + order.id + '/', tempOrder).success(function () {
$scope.allOrders[orderIndex] = tempOrder;
});
}
我不确定您的第一个示例是否能如预期的那样工作$http.put不是同步的。回调示例应该有效。第一个示例无效。。第二个例子不符合我的逻辑,因为当我更新这个订单时,它将在allOrders变量上更新。。如果第一个示例有效,那就太好了。您将向makeReady函数的order参数传递什么?如果是$scope.order,那么只需使用
$scope.order=tempoder代码>在成功函数中。$scope.allOrders
包含所有订单,因此当我更改订单时,它将影响allOrders。。