服务方法从Angular Controller调用5次

时间:2017-03-30 22:40:18

标签: angularjs

这个让我感到困惑。我看得远远超出了想法。在我的搜索中,我发现加载多个函数调用的一个常见原因是你在路由和ngController指令中定义了一个控制器。检查过这个 - 我不使用ngController。我也检查了我的路线 - 似乎是有序的。没有$ watch功能可能导致$ digest问题。这个函数在函数的底部被调用一次,console.log被注销5x ...每个时间。我甚至设置了$ timer功能,它仍称它为5x。尝试创建一个变量,只有在之前没有运行的情况下运行,但似乎这一切都发生在getQuotas()方法中。任何帮助将不胜感激!

function getQuotas () 
{
    console.log('getQuotas'); //This logs out 5x

    UserService.getQuotas()
    .then(function(res)
    {
        if (res.data.success)
        {
            quotaData = res.data.data;
            getQuotas_success();
            return true;
        }
        else
        {
            getQuotas_failure();
            return false;
        }
    }, function (err)
    {
        getQuotas_failure();
        return false;
    });

}
getQuotas(); //Function is called here. 

1 个答案:

答案 0 :(得分:0)

解决了!我希望这能帮助别人。此页面上的4个输入字段中的每一个都有一个自定义属性指令。该特定指令使用与页面本身相同的控制器。所以控制器总共加载了5次。幸运的是,这个指令现在已被弃用,但我可能会通过创建指令级控制器并在指令的返回对象中使用'require'属性,指向页面级控制器来重做它,或者只是拥有数据需要在页面级控制器和指令之间传递通过服务。