Javascript 在动画开始之前解析mdDialog承诺
在关闭动画结束之前,我是否可以配置Javascript 在动画开始之前解析mdDialog承诺,javascript,angularjs,angular-material,Javascript,Angularjs,Angular Material,在关闭动画结束之前,我是否可以配置mdDialog以解决承诺。目前,单击确定按钮和启动解析功能之间的时间约为300毫秒,这对我来说不太好 您可以在控制台中看到延迟,以及div.tester更改背景颜色所需的时间 (函数(角度,未定义){ “严格使用”; 有棱角的 .module('demoApp',['ngMaterial'])) .controller(“HomeController”,HomeController) .控制器(“欢迎控制器”,欢迎控制器); 函数HomeController
mdDialog
以解决承诺。目前,单击确定
按钮和启动解析
功能之间的时间约为300毫秒,这对我来说不太好
您可以在控制台
中看到延迟,以及div.tester
更改背景颜色所需的时间
(函数(角度,未定义){
“严格使用”;
有棱角的
.module('demoApp',['ngMaterial']))
.controller(“HomeController”,HomeController)
.控制器(“欢迎控制器”,欢迎控制器);
函数HomeController($scope$mdDialog){
$scope.showGreeting=showCustomGreeting;
函数showCustomGreeting(){
$mdDialog.show({
模板:
'' +
“你好!”+
' ' +
' ' +
“好的”+
' ' +
' ' +
“取消”+
' ' +
' ' +
'',
控制器:“欢迎控制器”,
})
。然后(关闭对话框,取消拨号);
函数closeDialog(){
//警报(“关闭”);
document.querySelector('.tester').classList.toggle('active');
log('Closed,do something…');
console.log(新日期()-startDate);
}
函数cancelDialod(){
log('已取消,执行其他操作…');
}
}
}
函数GreetingController($scope,$mdDialog){
$scope.closeDialog=函数(){
startDate=新日期();
console.log(新日期()-startDate);
$mdDialog.hide();
};
$scope.cancelDialog=函数(){
$mdDialog.cancel();
};
}
})(角度);
var startDate代码>
正文{
填充:100px;
}
.md按钮{
左边距:50像素;
文本转换:无;
填充:10px;
左侧填充:15px;
右侧填充:15px;
}
.介绍{
利润上限:-50px;
左侧填充:75px;
宽度:520px;
}
.测试员{
宽度:150px;
高度:150像素;
背景:红色;
}
.tester.active{
背景:绿色;
}
打招呼
在解决承诺之前,动画似乎已经过了烘焙:
function dialogPopOut(container, options) {
return options.reverseAnimate().then(function() {
if (options.contentElement) {
options.clearAnimate();
}
});
}
您可以创建一个带有自定义按钮的自定义对话框,在绕过默认承诺回调的同时触发所需回调/发送事件