2015-12-28 17 views
5

ES6 sözdizimini kullanarak <markdown-component> oluşturmaya çalışıyorum. @Input sözdizimi şeker ES6'da desteklenmez ve uygun bir alternatif bulamıyorum.Angular2 ES6 @Input alternatifi

Birlikte ebeveynde giriş tanımlayarak ediyorum: Sonra kullanarak giriş kabul edilebilir

<ng2-markdown [source]="source"></ng2-markdown> 

: Ben bir şablon eklerseniz beklendiği gibi

@Component({ 
    selector: 'ng2-markdown', 
    inputs: [ 'source' ] 
}) 

Ben çıkış değeri olacak alabilirsiniz ancak girdiyi yapıcıda kullanmanın bir yolu yoktur.

Bu modül aslında bir yönerge olmalı ve source değeri, yüklenen Markdown dosyasının yolunu tanımlayacaktır.

+3

Alternatif doğru, ancak yapım aşamasında çalışmayacak. En azından ngOnInit içinde olmalı. –

+0

@EricMartinez Çok teşekkür ederim. Saatlerdir buna takıldım. Neyin işe yaradığını gösteren bir cevap ekleyeceğim - umarım - başkalarına yardımcı olacaktır. –

+0

'@ Input' kullanmak istemiyorsunuz çünkü ES6 değil, aynı zamanda' @ Component' kullanıyorsunuz. Nasıl olur? – zeroflagL

cevap

2

@Eric Martinez yorumuyla, çalışmayı başardım.

Girişler, yaşam döngüsünün OnInit aşamasına kadar kullanılamaz.

çalıştı aşağıdaki: Kurucuda giriş erişmek çalışıyordu

... 
export class MarkdownComponent { 
    constructor() {} 

    ngOnInit() { 
    console.log(this.source); 
    } 
... 

, girişler başlatıldı önce.

+0

ilgisiz, ama son 1+ saat harcadım nasıl bir dış kütüphane (aynı zamanda bir Markdown çözümleyici kullanmayı umuyordum) angular 2 + SystemJS uygulamasına benim küçük başarı ile nasıl eklediniz - nasıl bittin Bunu yapıyor? – jjwon

+0

@jjwon İthalatları yönetmek için JSPM kullanıyorum. Paketin yüklenmesi, bağımlılıkların yüklenmesi ve her şeyin config.js'deki etiketlerle eşleştirilmesi önemlidir. Markdown çözümleyici için özür dilerim, bu bileşeni bir başka projeden çıkararak repo'yu yarattım. Çalıştığını test edip/doğrulayabilene kadar başkalarını uyarması için bir not ekleyeceğim. Çalışan bir uygulama görmek istiyorsanız, kişisel sitem için repo'yu (evanplaice.com) kontrol edin. –

+0

@jjwon İşaretleme bileşeninin JSPM ile yüklendiğinde çalıştığını doğruladım. Ayrıca kullanımını demonte etmek için ayrı bir proje oluşturdum. https://github.com/evanplaice/ng2-markdown-component-demo –