0

我想顯示一個模態使用角度bootstrap用戶界面在解析控制器中的項目。問題是我無法在模態控制器中獲得解決的項目。解決不工作在角度用戶界面模式

$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'); 
} 

}]);

我得到在控制檯中的響應是:

歷史controller.js:24 [對象] 0:Objectlength:1__proto__:數組[0]

showitems模態-controller.js: 8模態初始化

showitems模態-controller.js:9未定義

所以我在這裏明白的是,從SERVIC成功回調e被調用,但它不被解析到模態控制器中,而是模態控制器被初始化。這是爲什麼發生?

是因爲我回覆成功回調的迴應。如果是這樣的話,我能做些什麼?

回答

2

您需要返回的決心

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

什麼是我成功的回調回報的承諾?這有什麼用途? – Mani

+0

返回值,以便下一個'then'可以訪問它。你沒有看到下一個'then',但它在內部用於在控制器中創建注入的參數 – charlietfl