Я пытаюсь обновить страницу после показа успешного сообщения. Я связал много фрагментов, но либо он обновляется, не показывая сообщение или наоборот.
Поэтому я подумал о том, чтобы вызвать функцию Refresh после интервала или Trigger снова кнопку щелчка мыши через некоторое время, чтобы обновить страницу.
Вот код, Как достичь вышеуказанного сценария?
$scope.Save = function (data) {
debugger;
$http.post($rootScope.WebApiURL + '/updatemanifeststatus');
var value= $http.get($rootScope.WebApiURL + '/getmanifeststatus' );
$scope.manifeststatus = data;
$scope.showstatus = true;
$scope.alert = { type: 'success', msg: 'Published Successfully.' };
$(".statusDivPublish").show();
$scope.Refresh1();
}
$scope.Refresh1 = function () {
//refresh
$state.go($state.current, {}, { reload: true });
}
});
Вызов кнопки HTML
<div class="col-sm-offset-1">
<button id="PublishButton" class="btn btn-default shiny " ng-disabled="manifeststatus.enablePublishButton" ng-click="Save(manifeststatus)">Publish</button>
</div>
Что я хочу сделать Вот вызов функции Refresh1() после промежутка времени таким образом, страница обновляется после показа сообщения.
Я немного поучаствовал в вашей проблеме, и мне не нужно было использовать $timeout
для обновления модели с обновленными данными.
.controller('AController', function(ptth$) {
var self = this;
self.time = 'wait for it';
self.init = function() {
ptth$.get().then(function(data) {
self.time = data;
});
};
self.init();
self.save = function() {
ptth$.post().then(function() {
//I use an alert instead of a div we show or hide.
window.alert('hey, this is real success');
//You either re-fetch data here and update your model
//Or you reload after the alert...
//This example works with a ng-model update, instead of a reload
self.init();
}, function() {
window.alert('this is failure');
});
};
})
Несмотря на то, что это не так, как я хотел бы настроить вещи, этот пример должен проиллюстрировать, что вам действительно не нужно $timeout
или $reload
в этом отношении.
Ввести $ timeout и внести изменения в код JS.
$scope.Save = function (data) {
debugger;
$http.post($rootScope.WebApiURL + '/updatemanifeststatus');
var value= $http.get($rootScope.WebApiURL + '/getmanifeststatus' );
$scope.manifeststatus = data;
$scope.showstatus = true;
$scope.alert = { type: 'success', msg: 'Published Successfully.' };
$(".statusDivPublish").show();
//Adding a 5 second delay
$timeout($scope.Refresh1, 5000);
}
$scope.Refresh1 = function () {
//refresh
$state.go($state.current, {}, { reload: true });
}
});
$state.reload
для$scope.Refresh1
функции$scope.Refresh1
. Если вы используете UI-роутер.