Eh bien, comme l'indique le titre, j'ai ce problème, disons, j'ai un formulaire avec plusieurs étapes que j'ai créé en utilisant la propriété ng-show avec une fonction permettant de définir une variable $ scope avec un identificateur afin de la masquer. tout, sauf les étapes que l'utilisateur devrait subir, tout a bien fonctionné, mais ensuite, je me suis rendu compte que le formulaire était résumé sur chaque utilisateur, cliquez sur les boutons pour continuer jusqu'à la partie suivante du formulaire. en d'autres termes ceci:
<button class="button button-block button-positive" ng-click="selectTab(2)">Continuar</button</label>
à l'intérieur d'un formulaire, faites des div comme ceci:
<div ng-show="tab === 2"> ... data goes here ... </div>
afficher et disparaître que l'utilisateur navigue, mais soumet également le formulaire, mais si je change la balise comme ceci:
<label class="item">
<div class="button button-block button-positive" ng-click="selectTab(2)">Continuar</div>
</label>
ça ne marchera pas du tout, mon formulaire n’est pas envoyé à chaque clic, alors c’est une mise à jour de la situation, mais ça ne marche pas non plus, pourquoi cela se produit-il? Comment puis-je résoudre ce problème?.
Merci d'avance et désolé de vous déranger tous.
Assurez-vous de déclarer votre bouton avec type = "button". Si vous ne le faites pas, il suppose automatiquement qu'il s'agit du type submit. Aussi, si vous cherchez à ne montrer que cette div quand onglet === 2, assignez-le simplement en ng-click, aucun besoin d’une fonction.
Dans votre fonction selectTab (2), vous devriez pouvoir affecter une propriété de votre étendue nommée onglet à tout ce que vous transmettez à la fonction, en activant ng-show.
$scope.selectTab = function(item) {
$scope.tab = item;
//Your other logic for soothe
};
Oui, étrange que la norme soit «soumettre» pour un bouton. Je suppose qu'ils supposent que le but ultime des boutons est d'effectuer une action, comme la soumission. Merci mon pote.
Si votre bouton est à l'intérieur du <label>
ng-click ne fonctionnera pas.
Passez à un <div>
ou <span>
.
Utilisez sur le robinet. à la fois sur le robinet et ng-clic se déclenche en même temps.
<div on-tap="fireEvent()"></div>
<label class="item">
<div class="button button-block button-positive" ng-click="selectTab == 2">Continuar</div>
</label>
Tu devrais essayer ça