angularjs मोडल और गैर-मॉडल के लिए कोणीय नियंत्रक का पुन: उपयोग करें



controller angular-ui-bootstrap (1)

मैं एक मॉडल के उद्देश्यों के साथ-साथ एक गैर-मॉडल के लिए कोणीय नियंत्रक का पुन: उपयोग कैसे करूं? मेरे पास एक नया व्यवसाय होना जरूरी है, जो पहले से एक मोडल (केवल मोडल बॉडी) में मौजूद है, जो किसी नए पेज के भीतर टैब में रखा गया है।

वर्तमान में मैं अपने मोडल आरंभीकरण के भीतर resolve का उपयोग कर रहा हूं ताकि एक वैरिएबल को मोडल के नियंत्रक के पास कर सकें।

मॉडल प्रारंभ करना

var modalInstance = $uibModal.open({
    templateUrl: 'myModal.html',
    controller: 'myCtrl',
    resolve: {
        foo: function() { return scope.fooFromScope; },
    }
});

मौजूदा नियंत्रक

myApp.controller('hrpoConductReviewModalCtrl', ['$scope', 'foo', function($scope, foo) {
    ...
}]);

वर्तमान में $uibModalInstance मेरे modal के भीतर का उपयोग नहीं कर रहा है

क्या एक नियंत्रक को दूसरे नियंत्रक के अंदर से प्रारंभ करने और foo चर को पास करने का कोई तरीका है? एक मौजूदा प्रश्न है जो एक ही बात पूछता है लेकिन मुख्य जवाब resolve करने की बजाय मौलिक प्रारंभिकता के भीतर scope का उपयोग करने पर केंद्रित है।

मौजूदा प्रश्न: कोणीय UI बूटस्ट्रैप में मॉडल और गैर-मोडल फॉर्म के लिए समान नियंत्रक का उपयोग कैसे करें?


अगर आप यूरी-राउटर का उपयोग कर रहे हैं तो आप केवल यू-राउटर से संकल्प का उपयोग कर सकते हैं:

$stateProvider
    .state('conductReview', {
        url: '/review',
        templateUrl: '/js/templates/review.html',
        controller: 'hrpoConductReviewModalCtrl',
        resolve: {
            foo: function() { return scope.fooFromScope; },
            $uibModalInstance: function () { return null; } // <- workaround if you want to use $uibModalInstance in your controller.
        }
    })

यदि आप यूआई-राउटर का उपयोग नहीं कर रहे हैं तो आपको इसे निश्चित रूप से देखना चाहिए ;-)





angular-ui-bootstrap