ฉันพบว่ามันง่ายกว่าที่จะยึดเทมเพลตจาก Bootstrap-ui ฉันได้ปล่อยให้ HTML ที่แสดงความคิดเห็นยังคงอยู่เพื่อแสดงสิ่งที่ฉันเปลี่ยนแปลง
เขียนทับเทมเพลตเริ่มต้น:
<script type="text/ng-template" id="myDlgTemplateWrapper.html">
<div tabindex="-1" role="dialog" class="modal fade" ng-class="{in: animate}"
ng-style="{'z-index': 1050 + index*10, display: 'block'}" ng-click="close($event)">
<!-- <div class="modal-dialog"
ng-class="{'modal-sm': size == 'sm', 'modal-lg': size == 'lg'}"
>
<div class="modal-content" modal-transclude></div>
</div>-->
<div modal-transclude>
<!-- Your content goes here -->
</div>
</div>
</script>
แก้ไขเทมเพลตการโต้ตอบของคุณ (สังเกต DIV ของ Wrapper ที่มีคลาส "modal-dialog" และคลาส "modal-content"):
<script type="text/ng-template" id="myModalContent.html">
<div class="modal-dialog {{extraDlgClass}}"
style="width: {{width}}; max-width: {{maxWidth}}; min-width: {{minWidth}}; ">
<div class="modal-content">
<div class="modal-header bg-primary">
<h3>I am a more flexible modal!</h3>
</div>
<div class="modal-body"
style="min-height: {{minHeight}}; height: {{height}}; max-height {{maxHeight}}; ">
<p>Make me any size you want</p>
</div>
<div class="modal-footer">
<button class="btn btn-primary" ng-click="ok()">OK</button>
<button class="btn btn-warning" ng-click="cancel()">Cancel</button>
</div>
</div>
</div>
</script>
จากนั้นเรียกโมดอลด้วยพารามิเตอร์คลาส CSS หรือสไตล์ที่คุณต้องการเปลี่ยนแปลง (สมมติว่าคุณได้กำหนด "แอป" ไว้ที่อื่นแล้ว):
<script type="text/javascript">
app.controller("myTest", ["$scope", "$modal", function ($scope, $modal)
{
// Adjust these with your parameters as needed
$scope.extraDlgClass = undefined;
$scope.width = "70%";
$scope.height = "200px";
$scope.maxWidth = undefined;
$scope.maxHeight = undefined;
$scope.minWidth = undefined;
$scope.minHeight = undefined;
$scope.open = function ()
{
$scope.modalInstance = $modal.open(
{
backdrop: 'static',
keyboard: false,
modalFade: true,
templateUrl: "myModalContent.html",
windowTemplateUrl: "myDlgTemplateWrapper.html",
scope: $scope,
//size: size, - overwritten by the extraDlgClass below (use 'modal-lg' or 'modal-sm' if desired)
extraDlgClass: $scope.extraDlgClass,
width: $scope.width,
height: $scope.height,
maxWidth: $scope.maxWidth,
maxHeight: $scope.maxHeight,
minWidth: $scope.minWidth,
minHeight: $scope.minHeight
});
$scope.modalInstance.result.then(function ()
{
console.log('Modal closed at: ' + new Date());
},
function ()
{
console.log('Modal dismissed at: ' + new Date());
});
};
$scope.ok = function ($event)
{
if ($event)
$event.preventDefault();
$scope.modalInstance.close("OK");
};
$scope.cancel = function ($event)
{
if ($event)
$event.preventDefault();
$scope.modalInstance.dismiss('cancel');
};
$scope.openFlexModal = function ()
{
$scope.open();
}
}]);
</script>
เพิ่มปุ่ม "เปิด" แล้วยิงออกไป
<button ng-controller="myTest" class="btn btn-default" type="button" ng-click="openFlexModal();">Open Flex Modal!</button>
ตอนนี้คุณสามารถเพิ่มคลาสพิเศษใดก็ได้ที่คุณต้องการหรือเพียงแค่เปลี่ยนขนาดความกว้าง / ความสูงตามความจำเป็น
ฉันใส่ไว้ในคำสั่ง wrapper เพิ่มเติมซึ่งควรจะเป็นเรื่องเล็กน้อยจากจุดนี้ไปข้างหน้า
ไชโย