在IF条件为真后,angularJS停止$ interval调用

时间:2016-06-06 21:30:38

标签: javascript angularjs

我正在尝试每5000毫秒重新加载我的模型,我使用AngularJS $ interval函数来调用我的init()方法。我希望在列表中的所有值都是"完成"之后停止重新加载模型。或者给定列表中没有值是Processing。任何线索如何实现这个目标?

 function DeliveriesController(deliveriesService, $interval){

    var vm = this;
    vm.defaultWorkspace = 'HOT_POT';
    vm.currentWorkspace = vm.defaultWorkspace;

    vm.priorities = [];     // priorities are based the names of each workspace.
                            // So call the workspace end point from the workspaceService
                            // to get a list of all workspace. Then assign it to the priorities.
    vm.deliveries = {};
    vm.selectTab = selectTab;
    vm.retryDelivery = retryDelivery;
    vm.removeDelivery = removeDelivery;
    vm.downloadLog = downloadLog;
    vm.getDeliveryDdex = getDeliveryDdex;
    vm.refresh = refresh;

    $interval(init, 5000);
    return init();


    /**
     * Get the list of deliveries and initialize the model
     */
    function init(){
        deliveriesService.getDeliveries(vm.currentWorkspace).then(function (responseValues){
            vm.deliveries = responseValues;
        });
    }

    function refresh(){
        init();
    }
    function selectTab(workspace){
        vm.currentWorkspace = workspace;
        init();
    }

1 个答案:

答案 0 :(得分:3)

var myInterval = $interval(init, 5000);

满足一些条件:

$interval.cancel(myInterval);