我正在构建一个使用AngularJS和Angular Material前端的Web应用程序。我想使用$ mdToast作为错误通知。
我的主应用程序控制器(AppCtrl)中包含以下代码:
$rootScope.$on('httpError', function (event, errorMessage) {
$mdToast.show(
$mdToast.simple()
.textContent(errorMessage.message)
.position('top right')
.hideDelay(3000)
);
});
但是当在另一个$ scope中触发错误时,在hideDelay过期后,吐司并不会隐藏。
有人知道如何解决此问题吗?
最佳答案
您的代码对我来说似乎很好。我没有尝试从另一个范围广播事件。您可以尝试使用$timeout
隐藏对话框,而不是像this Plunker中那样使用hideDelay()
函数。
更新后的代码如下所示:
$rootScope.$on('httpError', function (event, errorMessage) {
$mdToast.show(
$mdToast.simple()
.textContent(errorMessage.message)
.position('top right')
);
$timeout(function() {
$mdToast.hide();
}, 3000);
});