angular material 如何将数据传递到预设对话框
angular material how to pass data to preset dialog
我正在使用 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'
}
})
);
但是这是行不通的。
实际上我检查了很多解决方案,但其中 none 个是有效的。文档中也没有这样的例子。
是否可以将一些日期传递给预设对话框?
这是一种方法 - 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'
}
})
);
}
});
快速 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>
我正在使用 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'
}
})
);
但是这是行不通的。
实际上我检查了很多解决方案,但其中 none 个是有效的。文档中也没有这样的例子。
是否可以将一些日期传递给预设对话框?
这是一种方法 - 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'
}
})
);
}
});
快速 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>