我创建这个 plnkr http://plnkr.co/edit/fdAdDNU9adtYrY9smQvU?p=preview在回答这个问题时’AngularJS - 在对话框中打开控制器(动态加载模板) https://stackoverflow.com/questions/16886356/angularjs-open-controller-in-a-dialog-template-loaded-dynamically/16887046#16887046'.
示例应用程序所做的就是启动一个基于模板的对话框,并带有自己的控制器。第一次启动对话框时,一切都按预期进行。但是,如果我尝试重新启动该对话框,则在关闭该对话框后,会显示模式背景,但不会显示对话框。在 javascript 控制台中您可以看到then
方法返回的承诺$dialog.open()
立即调用,但背景不会被删除,也不会报告任何错误。我完全困惑了。
可以在 angular-ui bootstrap 上重复打开和关闭对话框文档页 http://angular-ui.github.io/bootstrap/#/dialog.
我哪里做错了?
HTML:
<!DOCTYPE html>
<html ng-app="plnkr">
<head>
<link data-require="bootstrap-css@*" data-semver="2.3.2" rel="stylesheet" href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" />
<script data-require="[email protected] /cdn-cgi/l/email-protection" data-semver="1.0.7" src="http://code.angularjs.org/1.0.7/angular.min.js"></script>
<script data-require="[email protected] /cdn-cgi/l/email-protection" data-semver="0.3.0" src="http://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.3.0.min.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body>
<div ng-view></div>
</body>
</html>
JS:
app.controller("DemoCtl", ["$scope", "$dialog", function($scope, $dialog){
$scope.launch = function() {
var d = $dialog.dialog({
backdrop: true,
keyboard: true,
backdropClick: true,
templateUrl: "dialog.html",
controller: "DialogCtl"
});
d.open().then(function(result) { console.log("d.open().then"); });
};
}]);