0

J'ai une vue en alliage props.xml et une vue en alliage prequal.xml (qui contient une vue contenant un formulaire), chacune ayant aussi ses propres contrôleurs respectifs. Le formulaire de préqual apparaît après le chargement des données de table dans props.xml. J'ai eu besoin du formulaire de préqual pour être une fenêtre modale et comme Android et iOS traitent ceux-ci différemment, j'ai dû mettre la vue préqual dans un AlertDialog pour Android et une fenêtre modale pour iOS. Ainsi, le formulaire de préqual est ajouté au Android AlertDialog, sur $.UI.create('AlertDialog', {properties});, via sa propriété androidView et ajouté à la fenêtre iOS simplement par la fonction add(view) de la fenêtre.Comment fermer la vue parente d'une vue enfant d'un autre contrôleur

Cependant, le problème réside dans le fait que AlertDialog et Window sont définis dans props.js et que je dois être en mesure de fermer ces fenêtres à prequal.js après la soumission du formulaire. J'ai essayé d'utiliser l'ID associé à ces vues modales de conteneur pour les fermer, mais il ferme uniquement la vue réelle contenant le formulaire lui-même, pas la vue parent qui le contient également.

Comment puis-je fermer la vue parent de leurs enfants, lorsque la vue parent est définie dans un contrôleur distinct de celui de la vue enfant?

+1

Je ne sais pas si je complètement J'ai compris la question mais vous pouvez passer des fonctions en paramètre d'une vue à l'autre et appeler une fonction d'un "contrôleur" différent. – miga

+0

Désolé, j'ai donné beaucoup d'informations générales juste au cas où cela pourrait être pertinent. Bien sûr, le plus est négligeable. Fondamentalement, les vues conteneur parent sont dans props.js et les vues enfant dans prequal.js. Je dois pouvoir appeler les fonctions de fermeture ou de masquage de la vue parent de prequal.js – Rampancy

Répondre

1

intérieur winA vous ouvrez une nouvelle passe du contrôleur sur une fonction de rappel:

function closeA(){ 
    $.winA.close(); 
} 

Alloy.createController("winB", { 
    closeA: closeA 
} 

En winB vous pouvez appeler $.args.closeA() maintenant pour déclencher la fonction closeA() dans le contrôleur winA

+0

Merci beaucoup pour la réponse! Travailler très bien dans mon application. – Rampancy