मैं एक निर्देश को आलसी लोड करने की कोशिश कर रहा हूं। इसे लोड और परिभाषित किया गया है, लेकिन फिर यह HTML पर कभी नहीं चलता है। आलसी लोड होने के बाद मैं निर्देश को चलाने के लिए कोणीय कैसे प्राप्त करूं?

.config(function ($compileProvider, routes, $provide) {

    //Lazy define
    $compileProvider.directive('myDirective', function ($rootScope, $location, $filter) {

        console.log( "This IS called" );

        return function (scope, element, attrs) {
          console.log( "This is NEVER called");
        }
    }
}

एचटीएमएल:

<div my-directive></div>

अगर मैं इसे आलसी लोड नहीं करता, तो इसे कहा जाता है।

संपादित करें: यह भी काम नहीं करता:

.config(function ($compileProvider, routes, $provide) {

    //Lazy define
    $compileProvider.directive('myDirective', function ($rootScope, $location, $filter) {

        console.log( "This IS called" );

        return {
          restrict: 'A',
          link: function (scope, element, attrs) {
              console.log( "This is NEVER called");
            }
        };
    }
}
1
Don Rhummy 22 जुलाई 2016, 00:48
मुझे नहीं लगता कि जिस तरह से आप अपने निर्देश को परिभाषित कर रहे हैं वह मान्य है। यह लिंक आपकी मदद कर सकता है > stackoverflow.com/questions/12538665/…
 – 
Eric Wei
22 जुलाई 2016, 01:08
कुछ उत्तरों के सुझाव से मिलान करने के लिए इसे बदलना अभी भी काम नहीं करता है। मेरा अपडेट जांचें।
 – 
Don Rhummy
22 जुलाई 2016, 01:28
मेरे पास यह मेरे लिए इस प्लंकर में काम कर रहा है plnkr.co/edit/qhrgWGiafJYOqnfxBKG9?p=preview ए>
 – 
Eric Wei
22 जुलाई 2016, 01:47
आप इसे लोड करने में आलसी नहीं हैं। इसे एक बटन क्लिक पर परिभाषित करने का प्रयास करें ($compileProvider.directive सहेजें और यह काम नहीं करेगा। ऐसा इसलिए है क्योंकि कोणीय अपने सभी बूटस्ट्रैपिंग को समाप्त करने से पहले आपकी परिभाषा होती है।
 – 
Don Rhummy
22 जुलाई 2016, 02:44
यहां एक उदाहरण दिया गया है: plnkr.co/edit/Co762oSuw0rbHHbSvfBl?p=preview
 – 
Don Rhummy
22 जुलाई 2016, 03:06

1 उत्तर

सबसे बढ़िया उत्तर

आलसी लोड होने के बाद मैं निर्देश को चलाने के लिए कोणीय कैसे प्राप्त करूं?

HTML में ng-if निर्देश का प्रयोग करें।

  <body ng-app='test'>
    <h1>Hello Plunker!</h1>
    <div my-directive ng-if="defined"></div>
    <button ng-click="defineIt()">Define it</button><br>
  </body>

defined वेरिएबल को true के बाद पर सेट करके निर्देश आलसी लोड हो गया है, ng-if निर्देश आलसी लोड को संकलित करने के लिए $compile सेवा का उपयोग करेगा निर्देश।

PLNKR पर डेमो

2
georgeawg 22 जुलाई 2016, 05:29
बरु उर तेह स्मार्ट्ज़
 – 
John Vandivier
31 मई 2017, 00:22