Angular-ui modal, l'envoi de données en modal contrôleur de $http
Je suis en utilisant le angular-ui modal directive http://angular-ui.github.io/bootstrap/ .
J'ai suivi l'exemple à partir du lien ci-dessus.
C'est mes données que je veux envoyer de mon contrôleur:
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;
}
}
});
};
Et c'est mon modal contrôleur:
var ModalInstanceCtrl = function ($scope, $modalInstance, selectedProduct) {
console.log(selectedProduct);
$scope.ok = function () {
$modalInstance.close();
};
$scope.cancel = function () {
$modalInstance.dismiss('cancel');
};
};
Problème est que je ne peux pas accéder au "produit" dans mon Modal contrôleur. Je sais que la raison est quelque chose à faire de la largeur de asyncrnous appeler et il ne peut y accéder à partir de l'interface graphique. Mais comment puis-je résoudre ce problème? Comment puis-je envoyer le "$champ d'application.selectedProduct" à mon ModalInstanceCtrl?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayer quelque chose comme
Fondamentalement votre
$modal
peut tenir une promesse, alors pourquoi ne pas l'utiliser. Maintenant, l'objet doit être disponible sur le contrôleur lorsque la promesse est résolu. LeModalInstanceCtrl
devrait êtrepuisque vous êtes en train de résoudre le
items
propriété qui n'est pas leselectedProduct
propriété.$scope.selectedProduct
est défini avant de dialogue modale est appelé. Considérant que legetOneProduct
appel asynchrone. À l'aide degetOneProduct
dans leresolve
nous sauve de la question du moment.