我正在使用angular-ui模态指令http://angular-ui.github.io/bootstrap/。
我已按照上述链接中的示例进行操作。
这是我想从我的控制器发送的数据:
ProductsFactory.getOneProduct().then(function(d){
$scope.selectedProduct = d.data;
});
$scope.open = function () {
var modalInstance = $modal.open({
controller: 'ModalInstanceCtrl',
templateUrl: 'productDetail.html',
resolve: {
items: function () {
return $scope.selectedProduct;
}
}
});
};
这是我的模态控制器:
var ModalInstanceCtrl = function ($scope, $modalInstance, selectedProduct) {
console.log(selectedProduct);
$scope.ok = function () {
$modalInstance.close();
};
$scope.cancel = function () {
$modalInstance.dismiss('cancel');
};
};
问题是我无法访问我的模态控制器中的“选定产品”。我知道原因是做宽度异步调用,它只能从GUI访问。但是我该如何解决这个问题呢?如何将“$ scope.selectedProduct”发送到我的ModalInstanceCtrl?
答案 0 :(得分:41)
您可以尝试类似
的内容$scope.open = function () {
var modalInstance = $modal.open({
controller: 'ModalInstanceCtrl',
templateUrl: 'productDetail.html',
resolve: {
items: function () {
return ProductsFactory.getOneProduct();
}
}
});
};
基本上你的$modal
可以承诺,所以为什么不使用它。现在,当promise得到解决时,对象应该可以在控制器上使用。 ModalInstanceCtrl
应为
var ModalInstanceCtrl = function ($scope, $modalInstance, items) {
因为您要解析items
属性而不是selectedProduct
属性。