2015-07-09 13 views
6

तो AngularJs निर्देश की Replace संपत्ति को बहिष्कृत कर रहे हैं। referenceएंगुलरजेएस निर्देशक संपत्ति: बहिष्कृत बदलें - समतुल्य?

संदर्भ:

.directive('myDir', function($compile) { 
    return { 
     restrict: 'E', 
     template: '<div>{{title}}</div>' 
    } 
    }); 

इस ouput देगा:

<my-dir> 
    <div> some title </div> 
</my-dir> 

तो, Replacetemplate साथ <my-dir></my-dir> की जगह लेंगे। इन दिनों समकक्ष क्या है? या यह सिर्फ restrict: 'A' के साथ निर्देश का उपयोग करने के लिए है।

.directive('myDir', function($compile) { 
    return { 
     restrict: 'E', 
     template: '<div>{{title}}</div>', 
     link: link 
    }; 

    function link(scope, iElem, IAttr, ctrl, transcludeFn) { 
     var parent = iElem.parent(); 
     var contents = iElem.html(); 

     iElem.remove(); 

     parent.append($compile(contents)(scope)); 
    } 
    }); 

जो उत्पादन होगा:: - निर्देशों के लिए replace हटाया नहीं जा रही है

<div> some title </div> 
+0

आपने जो किया है वह ठीक काम करेगा, क्योंकि मुझे यकीन है कि आप जानते हैं। यह देखते हुए कि संस्करण 2.0 में इसे बहिष्कृत किया जा रहा है, मैं वास्तव में इस पल के लिए इसका उपयोग न करने की चिंता नहीं करता क्योंकि दोनों के बीच अंतर काफी महत्वपूर्ण होगा। इसके अलावा त्वरित Google सुझाव देता है कि दस्तावेज़ पुराने हैं, इसे हटाया नहीं जा रहा है - https://github.com/angular/angular.js/commit/eec6394a342fb92fba5270eee11c83f1d895e9fb#commitcomment-8124407 –

+0

@DanielEdwards ओह काफी उचित है, अच्छा चिल्लाओ! मैं इसे जवाब के रूप में भी डाल सकता हूं। या आप –

+0

कर सकते हैं यह वास्तव में एक डुप्लिकेट नहीं है लेकिन इस प्रश्न का एक उपयुक्त उत्तर है: http://stackoverflow.com/questions/16496647/replace-ng-include-node-with-template –

उत्तर

2

डॉक्स पुराना हो दिखाई देते हैं

मैं इस बनाया।

Source

4

replace: true को बेसिक बराबर साइड इफेक्ट है कि आप आसानी से पहचान सकते हैं देखते हैं

app.directive('directive', function() { 
    return { 
    ... 
    link: function postLink(scope, element, attrs) { 
     element.replaceWith(element.contents()); 
    } 
    }; 
}); 

है, हालांकि। बाइंडिंग अभी भी वहां हैं लेकिन निर्देश से विशेषताओं का अनुवाद टेम्पलेट में नहीं किया जाएगा।

सौभाग्य से, इसके लिए आमतौर पर कोई कारण नहीं है जब तक कि सशर्त replace आवश्यक नहीं है। replace को कोणीय 2 के लिए बहिष्कृत माना जाता है जैसा कि आपने पहले ही देखा है (यह वेब घटकों की अवधारणाओं में फिट नहीं है) लेकिन 1.x के लिए बिल्कुल ठीक है।

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