Javascript AngularJS$http作用域问题
我有一个引导对话框,用户可以在其中输入装运跟踪编号。2个按钮-一个用于取消,一个用于发货。控制器与此绑定。成功后,我希望将该订单的状态(在ng重复列表中)更改为“已发货”。但它不起作用。我做错了什么 带有对话框子控制器的控制器:Javascript AngularJS$http作用域问题,javascript,angularjs,Javascript,Angularjs,我有一个引导对话框,用户可以在其中输入装运跟踪编号。2个按钮-一个用于取消,一个用于发货。控制器与此绑定。成功后,我希望将该订单的状态(在ng重复列表中)更改为“已发货”。但它不起作用。我做错了什么 带有对话框子控制器的控制器: function ManageOrderCtrl($scope, $http, $dialog) { // Setup some dialog options for shipping popup var dialogOptions = { contr
function ManageOrderCtrl($scope, $http, $dialog) {
// Setup some dialog options for shipping popup
var dialogOptions = {
controller: 'ShipOrderCtrl',
templateUrl: '/partials/order/_ship.html'
};
// Shipping action - launches popup for tracking #
$scope.shipOrder = function(order){
var itemToEdit = order;
$dialog.dialog(angular.extend(dialogOptions, {
resolve: {
order: angular.copy(itemToEdit)
}
}
))
.open()
.then(function(result) {
if(result) {
angular.copy(result, itemToEdit);
}
itemToEdit = undefined;
})
};
}
// Shipping controller (injected in ship dialog)
function ShipOrderCtrl($scope, $http, order, dialog){
$scope.order = order;
// Called when they click "mark as shipped" on dialog
$scope.ship = function() {
dialog.close($scope.order);
//This works fine from here
//$scope.order.status = 'shipped';
$http.put('api/order/ship/' + $scope.order._id, {
tracking: $scope.order.tracking
})
.then(function(response) {
// This doesn't work
$scope.order.status = 'shipped';
});
};
// Cancel the dialog
$scope.close = function(){
dialog.close(undefined);
};
}
视图:
{{order.status}
好的-这是Angular Bootstrap对话框中的一个错误-在0.2.0中修复-我使用的是0.1.0你能解释一下“这不起作用”是什么意思吗。是否调用then
块?还是其他一些错误?代码似乎是正确的!它不会更新我名单上的状态。我有一段类似的代码来取消一个有效的订单——我怀疑这与对话框的额外部分有关,但因为我可以将它标记为早些时候发货的(注释掉的地方),它似乎都是有效的。WeirdI已经用更多的代码更新了我的帖子我不确定这是否可行,但你能试试看,$scope.$apply(function(){$scope.order.status='shipped';})代码>否-我收到一个错误:$摘要已在进行中
<div ng-conroller="ManageOrderCtrl">
<div ng-repeat="order in orders">
<span class="status">{{ order.status }}</span>
<a href="#" ng-click="shipOrder(order)"></a>
</div>
</div>