解析在角度ui模态中不起作用

时间:2016-01-18 01:48:35

标签: javascript angularjs twitter-bootstrap angular-ui-bootstrap bootstrap-modal

我正在尝试使用angular bootstrap ui来显示一个模态,它可以解析控制器中的项目。问题是我无法在模态控制器中获得这些已解决的项目。

$scope.showItemsInBill = function(bill){
  var modalInstance = $uibModal.open({
    animation: $scope.anismationsEnabled,
    resolve: {
      items: function(){
        var items = [];
        BillingService.getItemsInBill(bill).then(function(response){
          console.log(response);
          return response;
        });
      }
    },
    templateUrl: 'templates/showitems-modal.html',
    controller: 'ShowItemsModalCtrl',
    backdrop: 'static'
  });
}

模态控制器如下:

angular.controller('ShowItemsModalCtrl', ['$scope', '$uibModalInstance', 'BillingService', 'items', function ($scope, $uibModalInstance, BillingService, items) {

init();

function init(){
  console.log('Modal is initializing');
  console.log(items);
  $scope.items = items;
}

$scope.cancel = function () {
  $uibModalInstance.dismiss('cancel');
};

$scope.printBill = function(){
  console.log('printing bill');
}

}]);

我在控制台得到的答案是:

  

history-controller.js:24 [Object] 0:Objectlength:1__proto__:Array [0]

     

showitems-modal-controller.js:8模态正在初始化

     

showitems-modal-controller.js:9 undefined

所以我从这里了解到,来自服务的成功回调被调用,但它没有被解析到模态控制器中,但模态控制器被初始化。为什么会这样?

是因为我从成功回调中返回响应。如果是这样,在这种情况下我该怎么办?

1 个答案:

答案 0 :(得分:2)

您需要在解决方案中返回承诺

resolve: {
  items: function(){
    var items = [];
    // missing "return"
    return   BillingService.getItemsInBill(bill).then(function(response){
      console.log(response);
      return response;
    });
  }
},