仅当ng-if为true时才调用方法

时间:2014-05-22 06:53:08

标签: angularjs

仅当ng-if中的条件为真时才可以调用方法吗?我有这样的重复

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

这里是js代码

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

从控制台我可以看到这个方法比items.length和i.loc条件多发射一次。那么如何在ng-if为真时调用这个内部方法

2 个答案:

答案 0 :(得分:49)

如果条件为真,则调用someMethod()。例如,

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

答案 1 :(得分:0)

如果你想在条件为真或假时调用函数,你可以试试这个:

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