【发布时间】:2013-11-24 23:58:22
【问题描述】:
在html5Mode(true) 中使用引导模式。
在第一次单击时单击 launch demo modal 时,不会出现更改为 /#myModal 的 url。
再次单击launch demo modal 时,会出现模式。
在普通模式下($locationProvider.html5Mode(false); 模态出现在第一次点击时。
如何让模态框出现在第一次点击中?
标准模态代码:-
<!-- Button trigger modal -->
<a data-toggle="modal" href="#myModal" class="btn btn-primary btn-lg">Launch demo modal</a>
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-body">
...
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
角度代码:-
var myApp = angular.module('myApp', []);
myApp.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
$routeProvider.
when('/', {
templateUrl: 'partials/home',
controller: 'homePage'
}).
otherwise({redirectTo: '/login'});
$locationProvider.html5Mode(true);
}]);
经检查,第一次单击launch demo modal 时页面会刷新,但刷新不会通过服务器进行。 Angular 做到了这一点。同样,在第二次单击时,angular 也会管理 REST 请求并显示模态。
PS:- 我想演示这个问题,但 plunkr 在 html5Mode 下不起作用。
据我所知,我无法向jsfiddle 添加额外的 html 页面,但你不能。此外我不确定它是否支持$locationProvider.html5Mode(true); 模式。
我去哪里演示错误?
【问题讨论】:
-
也许你可以看看 Angular-UI 的 Bootstrap 指令 (angular-ui.github.io/bootstrap/#/modal)。有一个用于模态的。
-
上次我检查它有严重问题stackoverflow.com/questions/18205329/…
-
他们发布了一个新版本,因为你看过它。他们重新设计了 $modal 提供程序(也取消了 $dialog)。我制作了一个工作 Plunker 来向您展示如何一起使用 AngularJS 1.0.8、AngularUI 0.6.0 和 Bootstrap 3.0。
标签: twitter-bootstrap angularjs twitter-bootstrap-3 bootstrap-modal