আমি কৌনিক ইউআই বুটস্ট্র্যাপে মডেল প্রস্থ কীভাবে বাড়াতে পারি?


109

আমি একটি মডেল তৈরি করছি:

var modal = $modal.open({
                    templateUrl: "/partials/welcome",
                    controller: "welcomeCtrl",
                    backdrop: "static",
                    scope: $scope,
                });

এর প্রশস্ততা বাড়ানোর কোন উপায় আছে কি?



1
আপনি সর্বদা CSS ব্যবহার করে প্রস্থ পরিবর্তন করতে পারেন।
অ্যালেক্স চোরোশিন

উত্তর:


224

মডেল-ডায়লগ ক্লাসকে লক্ষ্য করতে আমি এর মতো সিএসএস ক্লাস ব্যবহার করি:

.app-modal-window .modal-dialog {
  width: 500px;
}

তারপরে নিয়ামকটিতে মোডাল উইন্ডোটি কল করে উইন্ডো ক্লাসটি সেট করুন:

    $scope.modalButtonClick = function () {
        var modalInstance = $modal.open({
            templateUrl: 'App/Views/modalView.html',
            controller: 'modalController',
            windowClass: 'app-modal-window'
        });
        modalInstance.result.then(
            //close
            function (result) {
                var a = result;
            },
            //dismiss
            function (result) {
                var a = result;
            });
    };

6
এটি দুর্দান্ত, আমি জানতাম না এটি অবশ্যই প্রয়োগ করা উচিত.modal-dialog
জানুস

CSS .app- মডেল-উইন্ডো এবং। Modal- ডায়ালগ উভয় ক্ষেত্রে প্রয়োগ করা উচিত, সুতরাং: .app-মডেল-উইন্ডো,। আধুনিক-ডায়ালগ {প্রস্থ: 500px; }
আলেকজান্ডার

2
@ আলেকজান্দার আমার পরীক্ষাগুলি অনুসারে নয়, মডেল-ডায়ালগের মূল উপাদানটির প্রস্থ যুক্ত করে এটি সব শেষ করে।
রব জে

@ রবজ্যাকবস দুঃখিত, আমি বুস্ট্র্যাপ ২.৩.২ ব্যবহার করার কথা উল্লেখ করিনি। আমার ধারণা। এ কারণেই আমার। অ্যাপ-মডেল-উইন্ডো এবং। মডেল-ডায়ালগ
আলেকজান্ডার

1
@ জিরোড্রিট্রাকশন উইন্ডো ক্লাস সংজ্ঞায়িত করা হয়েছে মোডাল উইন্ডো নির্দেশিকা - লিঙ্ক ফাংশন যা সংকলন পর্বের পরে, সেহেতু 'সি' নির্দেশিকাটি সংকলিত হয় না এটিকে উপাদান শ্রেণীর বৈশিষ্ট্যে যুক্ত করা হয়।
রব জে

48

আর একটি সহজ উপায় হ'ল 2 টি প্রাক তৈরির আকার ব্যবহার এবং আপনার এইচটিএমএলে ফাংশনটি কল করার সময় সেগুলি প্যারামিটার হিসাবে পাস করা। ব্যবহার: 300px প্রস্থ সহ ছোট মডেলের জন্য প্রস্থ 900px 'এসএম' সহ বৃহত্তর মডেলের জন্য 'এলজি' বা আপনি কোনও ডিফল্ট আকার যা 600px ব্যবহার করেন তার কোনও পরামিতি ছাড়িয়ে না।

উদাহরণ কোড:

$scope.openModal = function (size) {
var modal = $modal.open({
                templateUrl: "/partials/welcome",
                controller: "welcomeCtrl",
                backdrop: "static",
                scope: $scope,
                size: size,
            });
modal.result.then(
        //close
        function (result) {
            var a = result;
        },
        //dismiss
        function (result) {
            var a = result;
        });
};

এবং এইচটিএমএলে আমি নিম্নলিখিতগুলির মতো কিছু ব্যবহার করব:

<button ng-click="openModal('lg')">open Modal</button>  

3
আমি বেশিরভাগ ক্ষেত্রেই পাই, প্রাক-তৈরি আকারগুলি আমার প্রয়োজন need কিছু কাস্টম সিএসএস না করার জন্য +1!
কিলহফার

1
একটি যাদুমন্ত্র মত কাজ করে. বিদ্যমান বিল্ট-ইন সিএসএস আকারগুলির বিষয়ে স্পষ্ট করার জন্য ধন্যবাদ Thanks
কিং

28

বৃহত্তর ভিউপোর্ট রেজোলিউশনের জন্য আপনার পপআপের জন্য .modal-lg শ্রেণীর জন্য আপনি কাস্টম প্রস্থ নির্দিষ্ট করতে পারেন। কিভাবে করতে হবে এখানে আছে:

সিএসএস:

@media (min-width: 1400px){

   .my-modal-popup .modal-lg {
       width: 1308px;
   }       

}

জাতীয়:

var modal = $modal.open({
    animation: true,
    templateUrl: 'modalTemplate.html',
    controller: 'modalController',
    size: 'lg',
    windowClass: 'my-modal-popup'
});

1
সমাধানটি ভাল তবে সিএসএস সিনট্যাক্সটি আমার পক্ষে সঠিক নয়। আমাকে সিএসএস সমন্বয় করতে হবে।
জিয়ানওয়ু চেন

12

আমরা যখন কোনও মডেল খুলি তখন এটি পরামিতি হিসাবে আকার গ্রহণ করে:

এটি আকারের জন্য সম্ভাব্য মানগুলি: sm, md, lg

$scope.openModal = function (size) {
var modal = $modal.open({
      size: size,
      templateUrl: "/app/user/welcome.html",
      ...... 
      });
}

এইচটিএমএল:

<button type="button" 
    class="btn btn-default" 
    ng-click="openModal('sm')">Small Modal</button>

<button type="button" 
    class="btn btn-default" 
    ng-click="openModal('md')">Medium Modal</button>

<button type="button" 
    class="btn btn-default" 
    ng-click="openModal('lg')">Large Modal</button>

আপনি যদি কোনও নির্দিষ্ট আকার চান তবে মডেল এইচটিএমএলে স্টাইল যুক্ত করুন:

<style>.modal-dialog {width: 500px;} </style>

12

আর একটি উপায় আছে যা আপনাকে uibModal ক্লাসগুলি ওভাররাইট করতে হবে না এবং প্রয়োজনে সেগুলি ব্যবহার করতে হবে: আপনি নিজের আকারের "xlg" টাইপের সাথে ib uibModal.open ফাংশনটি কল করেন এবং তারপরে আপনি নীচের মত "মডেল-এক্সএলজি" নামের একটি শ্রেণীর সংজ্ঞা দেন ine :

.modal-xlg{
   width:1200px;
}

$ uibModal.open কে কল করুন:

 var modalInstance = $uibModal.open({
                ...  
                size: "xlg",
            });

এবং এই কাজ করবে। কারণ আপনি আকারের বুটস্ট্র্যাপ হিসাবে যে স্ট্রিং পাস করেন তা "মোডাল-" দিয়ে এটি যুক্ত করে তোলে এবং এটি উইন্ডোটির জন্য শ্রেণীর ভূমিকা পালন করবে।


3

বুটস্ট্র্যাপ-ইউআই থেকে টেমপ্লেটটি গ্রহণ করা আমার পক্ষে সহজ হয়েছে। আমি কী পরিবর্তন করেছি তা দেখানোর জন্য আমি মন্তব্য করা এইচটিএমএলটিকে এখনও স্থির রেখেছি।

তাদের ডিফল্ট টেম্পলেটটি ওভাররাইট করুন:

<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>

আপনার ডায়ালগ টেমপ্লেটটি সংশোধন করুন ("মোডাল-ডায়ালগ" শ্রেণি এবং "মডেল-সামগ্রী" শ্রেণিযুক্ত র‌্যাপার ডিআইভিগুলি নোট করুন):

<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>

এবং তারপরে আপনি যে সিএসএস ক্লাস বা স্টাইলের প্যারামিটারগুলি পরিবর্তন করতে চান তা দিয়ে মডেলকে কল করুন (ধরে নিই যে আপনি অন্য কোথাও "অ্যাপ" সংজ্ঞায়িত করেছেন):

<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>

এখন আপনি যা চান অতিরিক্ত ক্লাস যুক্ত করতে পারেন বা প্রস্থ / উচ্চতার আকারগুলি প্রয়োজনীয় হিসাবে পরিবর্তন করতে পারেন।

আমি এটিকে আরও একটি মোড়কের দিকনির্দেশক মধ্যে আবদ্ধ করে রেখেছি, যা এদিক থেকে সামান্য হওয়া উচিত।

চিয়ার্স।


3

আমি দিমিত্রি কোমিন সমাধানটি ব্যবহার করে সমস্যার সমাধান করেছি, তবে এটি সরাসরি ব্রাউজারে কাজ করতে বিভিন্ন সিএসএস সিনট্যাক্স দিয়ে।

সিএসএস

@media(min-width: 1400px){
    .my-modal > .modal-lg {
        width: 1308px;
    }
}

জেএস একই:

var modal = $modal.open({
    animation: true,
    templateUrl: 'modalTemplate.html',
    controller: 'modalController',
    size: 'lg',
    windowClass: 'my-modal'
});

3

আপনি কৌণিক মডেলের আকারের সম্পত্তিটি ব্যবহার করে খুব সাধারণ উপায়ে এটি করতে পারেন।

var modal = $modal.open({
                    templateUrl: "/partials/welcome",
                    controller: "welcomeCtrl",
                    backdrop: "static",
                    scope: $scope,
                    size:'lg' // you can try different width like 'sm', 'md'
                });

1

আপনি যদি কেবল ডিফল্ট বড় আকারের সাথে যেতে চান তবে আপনি 'মডেল-এলজি' যুক্ত করতে পারেন:

var modal = $modal.open({
          templateUrl: "/partials/welcome",
          controller: "welcomeCtrl",
          backdrop: "static",
          scope: $scope,
          windowClass: 'modal-lg'
});

0

কৌণিক 5 এর জন্য মডেল-সংলাপে সর্বাধিক প্রস্থ ব্যবহার করুন

.mod-class .modal-dialog {
    max-width: 1000px;
}

এবং অন্যের প্রস্তাবিত হিসাবে উইন্ডো ক্লাস ব্যবহার করুন, টিএস যেমন:

this.modalService.open(content, { windowClass: 'mod-class' }).result.then(
        (result) => {
            // this.closeResult = `Closed with: ${result}`;
         }, (reason) => {
            // this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;
});

এছাড়াও, আমাকে গ্লোবাল স্টাইল> স্টাইলস সিএসএসে সিএসএস কোড রাখতে হয়েছিল।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.