如何将动态模板加载到$ uibModal.open()(Angular UI bootstrap)?

时间:2016-04-07 19:35:28

标签: javascript angularjs angular-ui-bootstrap

我正在使用角度ui bootstrap。我想定义一个通用的模态窗口来提供一些默认按钮,比如close,ok,title等。

用户的模态正文模板作为模板网址提供。如何将用户的模态主体模板合并到我的通用模态窗口模板中?

下面是我的通用模态窗口模板, 模态-window.tpl.html

<div class="modal-header"><h3>{{ ctrl.headerText }}</h3></div>

<div class="modal-body">


    <<<< The user's template provided as URL should be embedded in here >>>


</div>

<div class="modal-footer">
  <button type="button" class="btn" data-ng-click="ctrl.close()"> {{ctrl.closeButtonText}} </button>
  <button class="btn btn-primary"   data-ng-click="ctrl.ok();"> {{ctrl.actionButtonText}}</button>
</div>

感谢。

1 个答案:

答案 0 :(得分:3)

您应该可以使用ng-include。 如果将用户模板URL放在控制器的作用域中: userTemplate='users/template.html'。然后你可以做类似的事情:

...
<div class="modal-body">
    <div ng-include="ctrl.userTemplate"></div>
</div>
...

如果您还需要自定义控制器,则可以定义如下:

用户/ template.html

<div ng-controller="CustomModalController as modalCtrl">
    {{modalCtrl.foo}}
</div>

唯一的缺点是需要在父控制器中定义此控制器。在这种情况下,控制器被定义为userTemplate='users/template.html'