该食谱页面可能已过时。在撰写本文时,可能已经可以将变量传递showModal
给modal
指令以显示或隐藏它。在您的控制器中,您可以通过将范围变量设置showModal
为 true 或 false 来显示模式:
$scope.showModal = false;
$scope.open = function() {
$scope.showModal = true;
}
当前版本不能那样工作。如果您阅读Angular UI Bootstrap库的官方文档,您将获得更好的体验
modal
如果您使用的是最新版本的库,则该指令不再是uib-modal
. 此外,您还有更多工作要做来实现您的模态。
模态标记应该在脚本标记中,类型设置text/ng-template
为按照官方示例:
<script type="text/ng-template" id="stackedModal.html">
<div class="modal-header">
<h3 class="modal-title" id="modal-title-{{name}}">The {{name}} modal!</h3>
</div>
<div class="modal-body" id="modal-body-{{name}}">
Having multiple modals open at once is probably bad UX but it's technically possible.
</div>
</script>
要实际打开模式,您的按钮单击应触发以下示例函数:
var modalInstance = $uibModal.open({
animation: $ctrl.animationsEnabled,
ariaLabelledBy: 'modal-title',
ariaDescribedBy: 'modal-body',
templateUrl: 'myModalContent.html',
controller: 'ModalInstanceCtrl',
controllerAs: '$ctrl',
size: size,
appendTo: parentElem,
resolve: {
items: function () {
return $ctrl.items;
}
}
});
您还必须为模态本身定义一个控制器:
angular.module('ui.bootstrap.demo').controller('ModalInstanceCtrl', function ($uibModalInstance, items) {
var $ctrl = this;
$ctrl.items = items;
$ctrl.selected = {
item: $ctrl.items[0]
};
$ctrl.ok = function () {
$uibModalInstance.close($ctrl.selected.item);
};
$ctrl.cancel = function () {
$uibModalInstance.dismiss('cancel');
};
});
所有这些代码都可以在 Angular UI Bootstrap 的官方文档中找到