web-dev-qa-db-fra.com

ng-click ne fonctionnera pas avec div in ionic

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.

9
Q_ro

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.

17
jcc

Si votre bouton est à l'intérieur du <label> ng-click ne fonctionnera pas. 

Passez à un <div> ou <span>.

45
Eder Ribeiro

Utilisez sur le robinet. à la fois sur le robinet et ng-clic se déclenche en même temps. 

<div on-tap="fireEvent()"></div>
5
Ashes Vats
<label class="item">
    <div class="button button-block button-positive" ng-click="selectTab == 2">Continuar</div>
</label>

Tu devrais essayer ça 

0
vieroli