Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在动画开始之前解析mdDialog承诺_Javascript_Angularjs_Angular Material - Fatal编程技术网

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();
    }
  });
}

您可以创建一个带有自定义按钮的自定义对话框,在绕过默认承诺回调的同时触发所需回调/发送事件