$ uibModalInstance undefined(AngularJS यूआई। बूटस्ट्रैप)




modal-dialog angular-ui-bootstrap (3)

यहां बहुत महान बयानों का है, लेकिन इनमें से कोई भी इस मुद्दे को हल नहीं कर रहा है।

अमेग - अर्ग ने मुझे अपना इंजेक्शन सेट करने के तरीके के साथ काम करने का काम किया

http://plnkr.co/edit/GXXmUosUEnEO3Tk0gUyp?p=preview

सबसे बड़ा जादू इस संपादन से आया था ...

var childController = function ($scope, $uibModalInstance) {
        $scope.ok = function () {
            $uibModalInstance.close({ my: 'data' });
        }
        $scope.cancel = function () {                
            $uibModalInstance.dismiss();
        }
    }

    self.open = function (size) {

        var modalInstance = $uibModal.open({
            animation: self.animationsEnabled,
            templateUrl: 'help.html',
            controller: childController,
            size: size
        });
    };

+++++++++++++++++++++++++++++

मैं यह भी नोट करना चाहता हूं कि इस रूप में सेवा के रूप में बाद में किया जाना चाहिए, जैसा कि आईसीएफएटीव ने बताया है। लेकिन मुझे मॉडल के वादे को वापस लेने और उपभोग करने के लिए सिंटैक्स का पता लगाना होगा ...

मदद के लिए आप सभी को धन्यवाद!!

चीयर्स!

क्यों $ uibModalInstance इंजेक्शन लगाने में असमर्थ है?

http://plnkr.co/edit/mi9Ytv0HaqE47ENod4Gn?p=preview

baseController.$inject = ['$uibModal', '$uibModalInstance'];

function baseController($uibModal, $uibModalInstance) {

self.ok = function () {
$uibModalInstance.close(self.selected.item);
};

self.cancel = function () {
$uibModalInstance.dismiss('cancel');
};

मैं $ uibModalInstance का उपयोग करने की कोशिश कर रहा हूँ और अगर मैं इसे इंजेक्षन करने का प्रयास करता हूं, तो मुझे एक इंजेक्शन त्रुटि मिलती है।

अगर मैं इसे इंजेक्ट नहीं करता, तो यह अनिर्धारित है ...


मुझे यह संदेह है कि आपका कोड असफल हो रहा है, क्योंकि आप नियंत्रक में मॉडल उदाहरण को इंजेक्ट करने की कोशिश कर रहे हैं, जिनकी ज़िम्मेदारी यह मॉडल बनाने के लिए है। यह इंजेक्ट नहीं कर सकता क्योंकि यह अभी तक मौजूद नहीं है अलग नियंत्रकों का उपयोग करने की कोशिश करें: एक मॉडल को खोलने के लिए और एक दूसरे को मॉडेल सामग्री के प्रसंस्करण के लिए। आप हमारे मॉडल उदाहरण के जावास्क्रिप्ट भाग में इस का एक उदाहरण देख सकते हैं।

टीबीएच, मैंने कभी नहीं देखा है कि निर्भरताएं इस तरह से पहले इंजेक्ट करती हैं। क्या ऐसा कुछ समस्या है जिससे आप ऐसा कर रहे हैं? किसी भी कारण से आप अभी उपयोग नहीं कर रहे हैं:

angular.module(...).controller('MyController', ['dep1', dep2', ..., MyControllerFunction]);
function MyControllerFunction(dep1, dep2) {...}

आपके कुछ बड़े उदाहरण में कुछ चीजें गलत थीं:

जिस क्रम में आप अपनी स्क्रिप्ट लोड करते हैं वह महत्वपूर्ण है, आपके पास:

<script data-require="[email protected]" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.js" data-semver="1.4.7"></script>
<script src="app.module.js"></script>
<script src="childController.js"></script>
<script src="baseController.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular-animate.js"></script>
<script src="//angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.14.3.js"></script>

यह ऐप के रूप में काम नहीं करेगा.मॉड्यूल.जेएस कोणीय- UI-bootstrap.js पर निर्भर करता है और childController.js angular-animate.js पर निर्भर करता है और childController.js baseController.js पर निर्भर करता है आपको निम्न क्रम में स्क्रिप्ट लोड करने की आवश्यकता है :

<script data-require="[email protected]" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.js" data-semver="1.4.7"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular-animate.js"></script>
<script src="//angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.14.3.js"></script>
<script src="app.module.js"></script>
<script src="baseController.js"></script>
<script src="childController.js"></script>

Childcontroller.js में आपके पास:

angular
      .module('app', ['ngAnimate'])

जो ऐप में निर्मित 'ऐप' को पुनः बनाने और अधिलेखित कर रहा है। मॉड्यूल.जेएस। आपको अपने app.module.js में ngAnimate मॉड्यूल को इतनी पसंद करना चाहिए:

angular
    .module('app', ['ngAnimate', 'ui.bootstrap']); 

आपको अपने बेस नियंत्रक में $ uibModalInstance के संदर्भ की आवश्यकता नहीं है, जो:

var modalInstance = $uibModal.open({
  animation: self.animationsEnabled,
  templateUrl: 'help.html',
  controller: 'BaseController',
  size: size
});

आपको 'वर्ड मोडल इंस्टेंस' के माध्यम से खोले गए मोडल तक पहुंच प्रदान करता है जो करीब है और तरीकों को ख़ारिज करता है।







angular-ui-bootstrap