Я настраиваю веб-форму, используя угловую настройку, при которой пользователи заполняют форму, получают ответ от сервера, а затем перенаправляются на другую страницу.
angular.module('discountController', ['discServices'])
.controller('discCtrl', function(Discount, $timeout, $location){
var app = this;
app.reqDiscount = function(discountData) {
Discount.reqDiscount(app.discountData).then(function(data) {
if (data.data.success) {
app.successMsg = data.data.message ; // Create Success Message
$timeout(function(){
console.log('timeout fired');
$location.path('/discountoutcome');
} , 3000);
} else {
app.errorMsg = data.data.message; // Create an error message
}
});
};
});
В приведенном выше коде я вызываю функцию app.reqDiscount и успешно получаю ответ от сервера, который заполняет переменную app.successMsg.Но функция $ timeout не работает.Однако, если я помещаю функцию $ timeout вне оператора if-else, она работает.Это не то, что я хочу, потому что, если есть ошибка, я хочу остаться на странице.
В других областях моего кода я поместил функцию $ timeout во вложенную позицию, как это, и она работает, поэтому я не понимаю, почему она не будет работать здесь.
Любая помощь, которую вы мне можете оказать, была бы великолепна.Даже если вы не можете ответить на этот вопрос, если вы можете дать мне несколько советов по отладке, которые будут полезны, так как console.log () - мой единственный метод отладки в настоящее время.Я использую код Visual Studio.
Консоль Chrome: Снимок экрана консоли Chrome
Консоль Visual Studio: Консоль VSC