2013-04-22 18 views
26

पर अलग-अलग दायरे के लिए पूछ रहे हैं मैं पहले से ही मौजूदा निर्देश के शीर्ष पर एक नया निर्देश बनाने का प्रयास कर रहा हूं लेकिन मुझे अपनी प्रक्रियाओं में रोक दिया गया है।एकाधिक निर्देश [निर्देश # 1, निर्देश # 2]

Multiple directives [directive#1, directive#2] asking for isolated scope on <easymodal title="Test-Title" text="Text-Text" oncancel="show = false" onok="alert();">

आधार निर्देश इस तरह दिखता है:: जब पेज लोड हो रहा है मैं निम्न त्रुटि का सामना करना पड़ रहा हूँ

Rohan.directive('easymodal', function() { 
    return { 
     restrict: 'E', 
//  priority: 200, 
     transclude: true, 
     replace: true, 
     scope:{ 
      showModal: "=show", 
      callback: "=closeFunction", 
      dismissable: '&' 
     }, 
     template: 
      '<div data-ng-show="showModal" class="modal-container">' + 
       '<div class="modal-body">' + 
        '<div class="title"><span data-translate></span><a data-ng-show="dismissable" data-ng-click="dismiss()">x</a></div>' + 
        '<div data-ng-transclude></div>' + 
       '</div>' + 
       '<div class="modal-backdrop" data-ng-click="dismiss()"></div>' + 
      '</div>' 
    }; 
}); 

और मेरे आवरण निर्देश इस तरह दिखता है:

Rohan.directive('easydialog', function() { 
    return { 
     restrict: 'E', 
     transclude: true, 
     scope: {title: '@', 
      text: '@', 
      onOk: '&', 
      onCancel: '&'}, 
     replace: true, 
     template: 
      '<easymodal>' + 
       '{{text}} ' + 
       '<hr>' + 
       '<button ng-click="{{onCancel}}" value="Cancel"' + 
       '<button ng-click="{{onOk}}" value="Ok"' + 
      '</easymodal>' 
    }; 
}); 

मेरे एचटीएमएल ऐसा लगता है:

<easydialog title="Test-Title" text="Text-Text" onCancel="show = false" onOk="alert();" /> 

पहले मैं हालांकि मेरा शीर्षक विशेषता विरोधाभासी था इसलिए मैंने HTML लाइन में और मेरे रैपर निर्देश से उस विशेषता को हटा दिया लेकिन यह प्रभावी नहीं था।

+0

क्या आप कृपया –

उत्तर

31

आपको easydialog टेम्पलेट को बदलने और में <easymodal> को लपेटने की आवश्यकता है।

+5

तैयार कर सकते हैं धन्यवाद, मैंने कभी अनुमान लगाया नहीं होगा। – Rohan

+2

क्या आप उस पर विस्तार कर सकते हैं? पहली जगह में समस्या क्या है और उन्हें div में कैसे लपेटना है इसे ठीक करता है? – masimplo

+5

@ mxa055 मेरा मानना ​​है कि कोणीय HTML तत्वों को एक स्कॉप्स से जोड़ता है, और एक HTML तत्व को 1 से अधिक दायरे से संबद्ध नहीं कर सकता है। – Langdon

0

आपकी समस्या यह है कि आप directive के अंदर तर्क जोड़ रहे हैं और साथ ही अपने वास्तविक HTML टेम्पलेट में <easydialog> नामक हल करने वाले टेम्पलेट टैग को जोड़ रहे हैं। आपने या तो एक या दूसरे को चुना है।

संबंधित मुद्दे