2014-05-22 5 views
22

Ist es möglich, eine Methode nur aufzurufen, wenn eine Bedingung in ng-if wahr ist? Ich habe eine Wiederholung wie dieseAufruf einer Methode nur wenn ng-if ist true

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

hier der js-Code ist

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

Von Konsole kann ich sehen, dass diese Methode viele Male feuert dann items.length und i.loc Zustand. So, wie diese interne Methode nur aufgerufen wird, wenn ng-if ist wahr

Antwort

46

Wenn die Bedingung wahr ist, wird someMethod() aufgerufen. Zum Beispiel

<div ng-repeat="i in items" 
    ng-if="i.name == 'abc'" 
    ng-init="someMethod()"> 
</div> 
+0

ich ähnliche Situation haben, aber ich habe die Methode aufrufen, wenn ng-wenn der Wert ist falsch. Gibt es einen Weg? @Dinesh ML –

+0

@RahulPandey, können Sie versuchen, die gleiche Bedingung auf die gleiche Weise nur ein '!' vorher: zum Beispiel ng-if = "i.name! = 'abc'" oder ng-if = "! (i.name == 'abc)'" – Li3ro

0

, wenn Sie Funktion aufgerufen werden soll, wenn die Bedingung wahr oder falsch ist, können Sie dies versuchen:

<md-card 
     class="ew-service-card" 
     ng-click="campaign.status == 'completed' ? $ctrl.newServiceCard() : $ctrl.newServiceCardDisable()"> 
</md-card> 
Verwandte Themen