0

我有这个简单的代码,它在 $http.post 的 catch 函数中调用倒数计时器。

this.$http.post('/api/task/post', updatedTask ,function(data){
              alert('success!')
}).catch(function(data){
              alert('Error!');
              vm.StartTimer(captionClass);
});

但是,当发生错误时 vm.StartTimer(captionClass) 不会执行,然后尝试在 click 事件中调用相同的函数,并且它确实有效。

TestCounter: function(){
            vm.StartTimer('.tm-task-caption-title-1');
}, 

这是倒计时功能

StartTimer: function(display) {
            var counter = 5;
            var interval =setInterval(function() {
                $(display).html(counter);
                counter--;
                if(counter == 0){
                    clearInterval(interval);
                }

            }, 1000);
        },
4

1 回答 1

0

对我有用的是vue-resource docs中使用的语法,在你的情况下,它应该是:

this.$http.post('/api/task/post', updatedTask ,function(data){
          alert('success!')
}, function(data){
          alert('Error!');
          vm.StartTimer(captionClass);
});

如您所见,没有捕获部分。Vue 资源使用 promises 的自定义实现,所以我不太确定 Http 方法中是否支持该 catch 函数。反正我用vue资源的promise,但是用resource方法

于 2016-06-09T14:00:56.857 回答