$scope.wideFlexiModal = function (options) {
if (options.backdrop) {var backdrop = options.backdrop;} else {var backdrop = true;} // Prevent closing modal without clicking modal button ?
if (options.keyboard) {var keyboard = options.keyboard;} else {var keyboard = true;} // Prevent closing modal with keyboard ?
if (options.templateUrl) {var tUrl = options.templateUrl;} else {var tUrl = 'partials/wideFlexiModal.html';} // Replace default template?
if (options.controller) {var ctrl = options.controller;} else {var ctrl = 'modalWideFlexiCtrl';} // Replace default controller?
if (options.windowClass) {var clas = options.windowClass;} else {var clas = 'wide_flexi_modal';} // Replace default class?
return $modal.open({
backdrop: backdrop,
keyboard: keyboard,
templateUrl: tUrl,
controller: ctrl,
windowClass: clas,
scope: $scope,
resolve: {
options: function () { return options; }
}
});
};
此代码按预期工作。 我可以根据需要多次触发该函数,并且模式会打开。
但是,当我在浏览器中打开页面更长的时间时,该页面已处于无效状态,当我再次使用它时, modal不再打开。
我可以看到该函数已启动,并且具有所有变量,包括正确的控制器名称和作用域。但是控制器再也不会启动。
在这种情况下,我可以带回模态的唯一方法是在浏览器中刷新/重新加载页面。
这是页面的标题:
<script type="text/javascript" src="js/lib/jquery-2.1.1.min.js"></script>
<script type="text/javascript" src="js/lib/angular.min.js"></script>
<script type="text/javascript" src="js/lib/angular-route.min.js"></script>
<script type="text/javascript" src="js/lib/angular-touch.min.js"></script>
<script type="text/javascript" src="js/lib/angular-cookies.min.js"></script>
<script type="text/javascript" src="js/lib/ui-bootstrap-tpls-0.12.0.min.js"></script>
<link rel="shortcut icon" href="favicon.ico" />
<link type="text/css" rel="stylesheet" href="css/bootstrap.min.css"/>
<link type="text/css" rel="stylesheet" href="css/screen.css"/>
<script type="text/javascript" src="js/lib/angular-sanitize.min.js"></script>
<script type="text/javascript" src="js/lib/ng-csv.js"></script>
任何帮助将不胜感激。