Bonjour,

je développe une application en AngularJS et j'ai le souci suivant:

1) Lorsque j'accède à une page avec un controller pour la première fois, en cliquant sur un bouton, j'ouvre une popup dans laquelle j'ai des boutons et l'initialisation d'une grid (ui grid). Jusqu'ici tout marche bien. Toutes les actions définies dans le scope marche bien.

2) Lorsque je passe à une autre page (avec un autre controller), puis lorsque je reviens à la première page, j'arrive toujours à ouvrir ma popup et ma grid s'affiche bien, mais plus aucune action (sur bouton) ne marche, comme si j'avais perdu le scope. Les choses semble marcher un court instant puisque un radio boutton de ma première ligne de grid est sélectionnée comme prévu, puis elle est désélectionnée après un très court instant.

Je ne peux malheureusement pas faire une demo sur plunker car c'est une application professionnelle qui prendrait beaucoup de temps à reproduire et de plus je n'ai pas les droits de le faire.

Ma popup est définie dans ma page html
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
<div id="modalChangeActors" dialog
    url="app/components/views/dialogPopUp/capacityfilesearch/blockADetails/modal-changeActors.html"
    dialogid="modalChangeActors" 
    width="{{changeActorsPopUpWidth}}"
    height="{{changeActorsPopUpHeight}}">
</div>

J'ai une directive dialog
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
dcrApp.directive('dialog', function($filter) {
	return {
		restrict : 'A',
		templateUrl : function(elem, attr) {
			return attr.url;
		},
		link : function(scope, element, attrs) {
			var dialogID = attrs.dialogid;
			var computedHeight = attrs.height;
			var computedWidth = attrs.width;
			var dialog = angular.element(dialog = $("#" + dialogID).dialog({
				autoOpen : false,
				height : computedHeight ? computedHeight : 200,
				width : computedWidth ? computedWidth : 550,
				modal : true
			}));
			scope[dialogID] = dialog;
 
			scope.$watch('gridChangeActorsHeight', function(newValue, oldValue) {
				var dialogID = attrs.dialogid;
				if (dialogID == 'modalChangeActors') {
				var computedHeight = attrs.height;
				var computedWidth = attrs.width;
				scope.changeActorsPopUpHeight += parseFloat(newValue) - parseFloat(oldValue)
				var dialog = angular.element(dialog = $("#" + dialogID).dialog({
					autoOpen : false,
					height : computedHeight ? scope.changeActorsPopUpHeight : 200,
					width : computedWidth ? computedWidth : 550,
					modal : true
				}));
				scope[dialogID] = dialog;
				}
 
			});
 
		}
Je l'actionne de la manière suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
$scope.modalChangeActors.dialog('option',
		'title', $filter('translate')(
				$scope.changeActorTitle));
				$scope.modalChangeActors.dialog("open");
Merci d'avance pour vos réponses