2015-09-17 3 views
1

Основываясь на изменении значения переменной, я хочу отобразить сообщение об ошибке в моем html. Я вызываю api из своего углового кода, и если он возвращает ошибку, я установил функцию setInterval, которая должна обновить bookingData.tracking_id до false, а затем отобразить сообщение об ошибке в html. Это должно быть очень просто, но комбинировать это с setInterval немного сложно.setInterval и обновление значений угловых

Здесь угловая/JavaScript

this.confirmTrackingTest = function() { 
    TestService.finalPackageCheck({tracking_id: controller.bookingData.tracking_id}).$promise.then(function (data) { 
    return data; 
    }).catch(function (err) { 
    var i = 0; 
    var interval = setInterval(function() { 
     i += 1; 
     if (i === 3) { 
     if (err.statusText === "Not Found") { 
      controller.bookingData.showErrorMessage = true; 
     } 
     clearInterval(interval) 
     } 
    }, 2000); 
    console.log(controller.bookingData.showErrorMessage) 
    }); 
} 

this.bookingData = { 
    showErrorMessage: false, 
    tracking_id: 1 
}; 

Здесь HTML:

{{Packs.bookingData.showErrorMessage}} 
<div class="alert alert-danger" role="alert" ng-if="Test.bookingData.showErrorMessage"> 
    <p>Please show this message</p> 
</div> 

{{Packs.bookingData.showErrorMessage}} показывает ложные так что recongised в HTML.

Пожалуйста, дайте мне знать, если потребуется какая-либо дополнительная информация.

+0

Судя по всему, ваш интервал остановится после вызова один раз. – epascarello

+0

почему ты так говоришь? его назовут 3 раза –

+1

Ах, плохая отступы на закрывающих скобках .... Вернуться к выпивке моего кофе – epascarello

ответ

9

Именно по этой причине Угловые боги изобрели $interval, чтобы устранить необходимость использования вручную $apply.

Так как вы называете $scope.$apply внутри обратного вызова или использовать $interval (не забудьте включить его в список параметров для инъекций depedency)

+2

Бог благословит угловатых богов, бог благословляет переполнение стека, и благословит вас Бог! Благодаря! –

Смежные вопросы