मैं एक निर्देश चाहता हूं जो घटक के tag name
की जांच करता है और कुछ हालत शो/घटक को छुपाता है। मैं ng-if
(घटक के नियंत्रक प्रारंभ नहीं) की तरह व्यवहार करने के लिए छुपा दिखाना चाहता हूं। उदाहरण:कोणीय एनजी-अगर निर्देश की तरह
<my-component custom-if></my-component>
निर्देश custom-if
के अंदर:
return {
compile: function($element) {
if($element[0].tagName === 'some condition'){
//Element is my-component
$element.remove();
}
}
};
समस्या मेरे पास है कि भले ही मैं तत्व को दूर यह अभी भी नियंत्रक मेरी घटक के कॉल है। वही होता है यदि मैं compile
या preLink
निर्देश के कार्य के अंदर तत्व को हटा देता हूं। बदली गई postLink
समारोह: मैं भी ng-if
वारिस करने की कोशिश की, लेकिन मैं नहीं है क्योंकि तत्व एक comment
है custom-if
निर्देश के अंदर घटक के टैग नाम प्राप्त कर सकते हैं
अद्यतन (शायद यह टिप्पणी अंदर तत्व रैप करने के लिए ng-if
विशिष्ट व्यवहार है) यह सुनिश्चित करने के लिए compile
पर भी यह काम नहीं करता है। यह/तत्व को छुपाता है लेकिन यह हमेशा नियंत्रक को दर्शाता है, भले ही वह निकाल दिया जाता है और वह है क्या मैं
इसके बजाय लिंक में आपका तर्क करने का यह संकलन करने के लिए कदम। ऐसा करने से आपको उस तत्व को डीओएम से निकालने की अनुमति मिलनी चाहिए और उस तत्व को जोड़ने से भी बाहर कर देना चाहिए। –
यह मदद नहीं करता है। मैंने इसे प्रश्न – jonasnas
के अंदर लिखा है ठीक है लेकिन कुंजी संकलन फ़ंक्शन में टेम्पलेट संकलन के लिंक चरण को छोड़ने के लिए $ कंपाइलर को बताना है। और कंपाइलर हमेशा लिंक फ़ंक्शन देता है जो हमेशा नियंत्रक तक पहुंच (चौथे तर्क के रूप में) होगा, जब तक कि आप संकलन पर रुक जाएंगे, आपको हमेशा नियंत्रक मिल जाएगा। अच्छा सवाल बीटीडब्ल्यू। –