11

एक कोणीय निर्देश का संकलन समारोह में एक पहले और बाद होती है। क्या यह पूर्व और पोस्ट वास्तव में लिंक फ़ंक्शन के समान है?कोणीय में: संकलन समारोह के पहले और बाद के तरीकों लिंक के पूर्व के रूप में ही कर रहे हैं और पोस्ट

नीचे कोड में उदाहरण के लिए, लिंक समारोह (शॉर्टकट अगर आप) एक ही पूर्व और इसके नीचे संकलन समारोह के पद के रूप में है?

लिंक

.... 
link: { 
    pre: function(scope, elem, attr) { 
    //stuff 
    }, 
    post: function(scope, elem, attr) { 
    //stuff 
    }  
} 
.... 

संकलित ...

.... 
    compile: function(tElem, tAttrs){ 
    return { 
     pre: function(scope, iElem, iAttrs){ 
     //stuff 
     }, 
     post: function(scope, iElem, iAttrs){ 
     //stuff 
     } 
    } 
    } 
    ..... 

उत्तर

8

संकलित पहले चलाया जाता है (और आमतौर पर है जहाँ आप अपने "टेम्पलेट" डोम तत्वों maipulate)। लिंक दूसरा चलाया जाता है, और आम तौर पर जहां आप अपना निर्देश $ स्कोप में संलग्न करते हैं।

वे एक विशिष्ट क्रम में भी भागते हैं, इसलिए आप उस तथ्य का उपयोग कर सकते हैं जब आप उन निर्देशों को डिज़ाइन कर रहे हैं जिन्हें ठीक से काम करने के लिए कुछ "पैरेंट" निर्देश सेटअप की आवश्यकता होती है (जैसे tr: td sorta thing)।

वहाँ आप और अधिक स्पष्टता के लिए पर एक नज़र ले जा सकते हैं संकलन लिंक बनाम के लिए समय पर एक really great article है।

इसके अलावा - very low level stack answer to a similar question है जो आपको पसंद हो सकता है (ध्यान दें कि यह पहले सूचीबद्ध नहीं है, यह सबसे अधिक उल्टा है)।

तो, अंतर क्या है?

तो लिंक समारोह के रूप में संकलन पूर्व/पोस्ट लिंक "एक ही" कर रहे हैं? आप तय करें।

आप एक निर्देश पर संकलन को परिभाषित करते हैं, तो ढांचा अपने लिंक समारोह पर ध्यान नहीं देता है (क्योंकि संकलन समारोह पूर्व/पोस्ट लिंक कार्यों वापस जाने के लिए माना जाता है)।

यह link ओवरलोड compile.postLink और link.pre ओवरलोड compile.preLink की तरह थोड़ा सा है।

+0

आपके द्वारा पोस्ट किया गया लेख वह है जिसे मैं वास्तव में देख रहा था जब यह प्रश्न मेरे सिर में आया था। तो मुझे अपने प्रश्न के लिए सिर्फ "हां" या "नहीं" की आवश्यकता है और मेरी धारणा – user1142130

+0

है, इसलिए "पूर्व प्री/पोस्ट के समान प्री/पोस्ट करें"? बस एक शॉर्टकट? नहीं ;-) – bri

+0

ठीक है, वे अलग कैसे होते हैं? – user1142130

0

जब यह अधिभार होता है, तो क्या आप कुछ अलग होने (यानी किसी भी अन्य कार्यक्षमता को जोड़ा जा रहा है) के बारे में जानते हैं, जैसा कि केवल पूर्व और पोस्ट संकलन से पोस्ट करना है?

आप source code, को देखें, तो जब $directiveProvider निर्देशों पंजीकृत करता है, अगर compile संपत्ति याद आ रही है और link संपत्ति मौजूद है, यह एक compile संपत्ति एक खाली समारोह है कि link संपत्ति रिटर्न है कि पैदा करता है।

तो जवाब यह है कि संकलन फ़ंक्शन द्वारा लौटाए गए लिंक फ़ंक्शंस डीडीओ की link संपत्ति द्वारा प्रदान किए गए लिंक फ़ंक्शंस के समान हैं। कोई अन्य कार्यक्षमता नहीं जोड़ा गया है।

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