appeler une méthode seulement si ng-if est true

Est-il possible d'appeler une méthode uniquement lorsqu'une condition de ng-si est vrai? J'ai une répétition comme ceci

<div ng-repeat="i in items" ng-if="i.loc == 'abc'">
    <h1>Hello.. {{getName()}}</h1>
</div>

voici le code js

$scope.getName = function() {
    console.log('fired');
    return "myName";
}

de la console je peux voir que cette méthode se déclenche beaucoup plus de fois que des articles.longueur et je.loc condition. Alors comment appeler cette méthode à l'intérieur seulement quand ng-if est vrai

22
demandé sur FarazShuja 2014-05-22 10:53:08

2 réponses

Si la condition est vraie , someMethod() sera appelée. Par exemple,

<div ng-repeat="i in items" 
     ng-if="i.name == 'abc'" 
     ng-init="someMethod()">
</div>
48
répondu Dinesh ML 2015-08-12 16:43:14

si vous voulez appeler la fonction lorsque la condition est vraie ou fausse, vous pouvez essayer ceci:

<md-card
        class="ew-service-card"
        ng-click="campaign.status == 'completed' ? $ctrl.newServiceCard() : $ctrl.newServiceCardDisable()">
 </md-card>
0
répondu Rizo 2018-02-20 12:04:44