我正在使用 angular ui bootstrap (ui.boostrap.modal) 处理模板。数据 {{property}} 是从 Ajax 请求创建的。
<!-- template for the modal box-->
<div><a data-toggle="modal" href="#{{property.domId()}}"
class="btn btn-default">{{property.label}}</a></div>
<div id="{{property.domId()}}"
class="modal fade" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-body">
<div class="row">
<div class="col-md-12 panel panel-info">
<div class="panel-heading">
<span tooltip-placement="bottom"
tooltip-html-unsafe="{{property.tooltip}}">
{{property.label}}</span>
</div>
<div class="panel-body">
<div ng-repeat="property in property.value">
<div ng-include="property.templateUrl">
</div>
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
模态窗口中的一些按钮会更新 $scope 中的模型等等。
问题是:从 ajax 承诺返回后,DOM 开始重建模态框。在某个时刻,在 $digest 的深处,它无法渲染一个元素并且模态窗口消失了。它只留下背景阴影(阻止我点击任何东西)。
<div class="modal-backdrop fade in"></div>
在开发者工具中你可以看到整个 DOM 已经被 Angular 完全解析了。