我正在使用Angular Material,我使用$ mdDialogProvide创建了一个简单的预设对话框:
angular.module('starterApp').config([
'$mdDialogProvider',
function ($mdDialogProvider) {
$mdDialogProvider.addPreset('warning', {
options: function () {
return {
template:
'<md-dialog>' +
'{{dialog.warning}}' +
'</md-dialog>',
controllerAs: 'dialog',
theme: 'warning'
};
}
});
}
]);
我想在调用时传递警告信息。我试图传递一条消息,例如:
$mdDialog.show(
$mdDialog.warning({
locals: {
warning: 'Warning message'
}
})
);
但是不起作用。
实际上我检查了很多解决方案,但没有一个能正常工作。文档中也没有这样的例子。
是否可以将某些日期传递给预设对话框?
答案 0 :(得分:5)
这是一种方法 - CodePen
标记
<div ng-controller="AppCtrl" ng-cloak="" ng-app="MyApp">
<md-button ng-click="showDialog()">Show Dialog</md-button>
</div>
JS
angular.module('MyApp',['ngMaterial', 'ngMessages'])
.config([
'$mdDialogProvider',
function ($mdDialogProvider) {
$mdDialogProvider.addPreset('warning', {
options: function () {
return {
template:
'<md-dialog aria-label="Dialog">' +
'{{warning}}' +
'</md-dialog>',
controller: DialogController,
theme: 'warning',
clickOutsideToClose: true
};
}
});
function DialogController($scope, $mdDialog, locals) {
console.log(locals);
$scope.warning = locals.warning;
}
}
])
.controller('AppCtrl', function($scope, $mdDialog) {
$scope.showDialog = function () {
$mdDialog.show(
$mdDialog.warning({
locals: {
warning: 'Warning message'
}
})
);
}
});
答案 1 :(得分:1)
快速ES6方式
动态创建具有范围变量的控制器
let warning = 'Warning message';
$mdDialog.show({
templateUrl: 'dialog.template.html',
controller: $scope => $scope.warning = warning
})
<强>模板强>
warning
是$scope
变量,因此可在模板中找到
<md-dialog>
<md-dialog-content>
<span> {{warning}} </span>
<md-dialog-content>
<md-dialog>