-2

J'ai un div sur lequel j'appelle une méthode. Maintenant, il y a un bouton 'Annuler', sur lequel je mets un $ scope.variable à true.

Ensuite, je dois exécuter ma fonction sur le clic de 'div', seulement si $ scope.variable a la valeur false.

Mais cela fonctionne maintenant! Pourriez-vous m'aider à résoudre ce problème?

Voici mon code:

angular.module('app', ['ngSanitize']).controller('Ctrl', function($scope) { 
 
$scope.stopFunc = function() { 
 
    $scope.stopFuncExec = true; 
 
} 
 
$scope.stopFuncExec == false; 
 
$scope.myFunc1 = function() { 
 
    console.log("Inside " + $scope.stopFuncExec); 
 
    var whoAreYou = "Coder"; 
 
    if (whoAreYou == "Coder" && $scope.stopFuncExec == false) { 
 
    console.log("Hello, stop me if you can!"); 
 
    } 
 
} 
 
});
.parent { 
 
    height: 100px; 
 
    width: 200px; 
 
    background: skyblue; 
 
    border: 1px solid lightgrey; 
 
    border-radius: 5px; 
 
    padding: 20px; 
 
    margin: 20px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script> 
 
<div ng-app="app" ng-controller="Ctrl"> 
 
    <div class="parent"> 
 
    <div ng-click="myFunc1()">Click Me!</div> 
 
    </div> 
 
    <button ng-click="stopFunc()">Cancel</button> 
 
</div>

+0

Vous pourriez avoir modifié [cette question] (https://stackoverflow.com/q/46745248/2435473) –

+0

Oui, je Je suis désolé à ce sujet. Mais alors, ce n'était pas juste de ma part de changer mon propre code incorrect dans la question. Par conséquent, je l'ai ajouté ici, pourriez-vous s'il vous plaît aider? – Sunny

Répondre

2

Vous avez faute de frappe: $scope.stopFuncExec == false;

Vouliez-vous dire: $scope.stopFuncExec = false;?


Après la $scope.stopFuncExec == false;$scope.stopFuncExec sera undefined

Fixed Demo

+0

Oui, c'est idiot de ma part! Merci beaucoup! – Sunny

1

Comme vous l'avez dit, la fonction doit obtenir appelé uniquement lorsque la variable est fausse. Je crois que vous pouvez suivre ci-dessous le travail autour de cela. La fonction sera appelée sur le clic de la Div, mais là, vous pouvez vérifier la condition ci-dessous.

Si la variable est fausse, alors seulement elle exécutera le bloc. J'espère que cela résoudra votre problème.

$scope.myFunc1 = function() 
{ 
    if(!$scope.stopFuncExec) 
    { 
     console.log("Inside " + $scope.stopFuncExec); 
     var whoAreYou = "Coder"; 
     if (whoAreYou == "Coder" && $scope.stopFuncExec == false) 
     { 
      console.log("Hello, stop me if you can!"); 
     } 
    } 
}