角度函数不断被称为

时间:2016-07-01 15:20:04

标签: javascript angularjs angular-digest

我有一个ng-if检查我的Angular应用程序中某些链接的用户访问权限:

<li ng-if="hasAccess('admin')"><a href="#/admin">admin</a></li>

在我的Angular应用.run中,我添加了一个rootcope功能:

    $rootScope.hasAccess = function (type) {
        if ($rootScope.me && $rootScope.me.groups) {
            return $rootScope.me.groups.filter(function (group) {
                return group.id === type;
            }).length > 0;
        } else {
            console.log(type + ' cannot be verified. $rootScope.me has not been set');
        }
    };

有时这个函数被无限调用(我假设通过摘要周期),但我不确定为什么。

1 个答案:

答案 0 :(得分:2)

该功能连续调用,因为 ngIf 指令在每个摘要周期评估...

如果你想执行该功能只需尝试一次:

<div ng-if="hasAdminAccess">He is Admin</div>
white-space: nowrap;