当我上传简历时,会显示已成功上传的简历。但是当我转到下一页时,这个消息仍然存在。
但是当我第三次转到另一个页面时,这个flash消息就消失了。
刷新页面时,该消息也会消失。
你能帮助我,当我转到下一页时,如何让flash消息消失,而且它只能在特定时间显示。
fileUpload.uploadFileToUrl( json, file ).then(function(res){
if( res.success !== undefined ){
FlashService.Error(res.message, true);
} else {
if (res.json.response.statuscode==0) {
console.log(res.json.response);
if( type === "photo" ) {
$cookieStore.put('photoid', res.json.response.photoid);
} else {
$cookieStore.put('resumeid', res.json.response.resumeid);
}
FlashService.Success( ( $scope.capitalizeFirstLetter( type ) +" upload successfully" ),true);
} else {
FlashService.Error(res.json.response.statusmessage);
}
}
});
}
答案 0 :(得分:0)
我在控制器的代码中使用了以下行解决了上述问题。
FlashService.Success( ( $scope.capitalizeFirstLetter( type ) +" upload successfully" ),false);
我用过' false'而不是' true'。
flash.service.js:
angular
.module('app')
.factory('FlashService', FlashService);
FlashService.$inject = ['$rootScope'];
function FlashService($rootScope) {
var service = {};
service.Success = Success;
service.Error = Error;
initService();
return service;
function initService() {
$rootScope.$on('$locationChangeStart', function () {
clearFlashMessage();
});
function clearFlashMessage() {
var flash = $rootScope.flash;
if (flash) {
if (!flash.keepAfterLocationChange) {
delete $rootScope.flash;
} else {
// only keep for a single location change
flash.keepAfterLocationChange = false;
}
}
}
}
function Success(message, keepAfterLocationChange) {
$rootScope.flash = {
message: message,
type: 'success',
keepAfterLocationChange: keepAfterLocationChange
};
}
function Error(message, keepAfterLocationChange) {
$rootScope.flash = {
message: message,
type: 'error',
keepAfterLocationChange: keepAfterLocationChange
};
}
}