Javascript AngularJS$http作用域问题

Javascript AngularJS$http作用域问题,javascript,angularjs,Javascript,Angularjs,我有一个引导对话框,用户可以在其中输入装运跟踪编号。2个按钮-一个用于取消,一个用于发货。控制器与此绑定。成功后,我希望将该订单的状态(在ng重复列表中)更改为“已发货”。但它不起作用。我做错了什么 带有对话框子控制器的控制器: function ManageOrderCtrl($scope, $http, $dialog) { // Setup some dialog options for shipping popup var dialogOptions = { contr

我有一个引导对话框,用户可以在其中输入装运跟踪编号。2个按钮-一个用于取消,一个用于发货。控制器与此绑定。成功后,我希望将该订单的状态(在ng重复列表中)更改为“已发货”。但它不起作用。我做错了什么

带有对话框子控制器的控制器:

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>