2016-04-16 36 views
9

Ben açısal 2'ye bir açısal 1.4 uygulamasını göç düşünüyorum ve biz $ provide.decorator (gibi Can you override specific templates in AngularUI Bootstrap?) kullanılarak angular1 yapmak gibi bileşenlerin şablonu geçersiz kılmak mümkün olacaktır merak ediyorum.Angular2: Bileşen şablonunu nasıl geçersiz kılarsınız?

TestComponentBuilder.overrideTemplate gibi bir sınama için test dışı bir senaryo arıyorum. Angular2 benzer bir şeyle geliyor mu?

+0

demek? –

+0

Elbette, bu [cevap] 'a bakın (http://stackoverflow.com/questions/36660376/angular2-web-vs-mobile-templateurl/36660838#36660838). – kemsky

+0

Teşekkür ederim, Ne yazık ki, şablonu kimin şablonlarını geçersiz kılmak istediğimi, bileşenlerin çoğunu 3. parti kütüphanelerinden (yani, açısal-ui) geliyor. – rrecaredo

cevap

6

Kontrol dışarı stackoverflow Override/extend third-party component's template bu cevabı. Ana fikir kendi bileşeninizi yazabilir ve üçüncü taraf bileşenlerini genişletebilirsiniz.

  1. Hala orijinal bileşeni derlenir:

    import {component} from 'angular2/core'; 
    import {thirdPartyClass} from 'example/example'; 
    
    @Component({ 
        selector: 'my-selector', 
        template: '<div>my template</div>' 
    }) 
    
    export class MyOwnComponent extends thirdPartyClass { 
        constructor() { 
        super() 
        } 
    } 
    

    Ama olumsuz yanları vardır. Bu yöntemi kullanıyorsanız

  2. , thirdPartyClass şablonunda kullanılan hiçbir ithal boruları unutma. işlevselliği şablon üzerine bağlıdır thirdPartyClass güncellendiğinde
  3. , elle güncellemeniz gerekir.

    Güncellemeler için bu Github Issue abone olun. Birkaç farklı şablonlar ile bir bileşeni yeniden kullanmak için

+0

Sorunları düzeltildi. – alexKhymenko