我使用http拦截器来处理错误。一旦捕获某些错误,是否可以使用md-dialog弹出一个显示错误消息的窗口。将circular dependency
注入服务时发生$mdDialog
错误。如果errorMsg
可以在此服务中使用,我应该在哪里绑定$mdDialog
?
拦截器:
.factory('httpInterceptor', ['$q', '$mdDialog', function($q, $mdDialog){
return {
'response': function(res) {
var status = res.data.status;
var errorMsg = res.data.payload.message;
if(status === 'fail') {
$mdDialog.show({
// controller: ???,
// scope: ???,
templateUrl: 'error.html',
})
return $q.reject(res);
}
return res;
}
}
}])
答案 0 :(得分:2)
是的,您可以使用控制器显示$ scope变量并解析,
$mdDialog.show({
controller: function($scope, $mdDialog){
// do something with dialog scope
},
template: '<md-dialog aria-label="My Dialog">'+
'<md-dialog-content class="sticky-container">{{test}}' +
'</md-dialog-content>' +
'<md-button ng-click=close()>Close</md-button>' +
'</md-dialog>',
controller: 'modalCtrl',
resolve: {
test: function () {
return 'test variable';
}
}
});
<强>控制器:强>
app.controller('modalCtrl', function($scope, $mdDialog, test) {
$scope.test = test;
});