2016-05-16 7 views
8

Ben Açısal 2 stil kılavuz 04-10 izlemeye çalışıyorum oluşturma ve İthalat Variller burada bulunabilir: https://angular.io/docs/ts/latest/guide/style-guide.htmlAngular 2 uygulamamı, varil dosyası içe aktarmalarla çalışmak için nasıl alabilirim?

Uygulamamı çalıştırdığınızda, açısal şimdi var olmayan bir dosyayı yüklemeye çalışır: "benim- bileşen-ad-here.js".

Sorunu göstermek için, Angular 2 örnek uygulamasını bir varil dosyası kullanacak şekilde değiştirdim ve şimdi de bir 404 hatası veriyor.

Kahramanlar bileşen dosyalarını kahramanlar adı verilen kendi klasörlerine yerleştiriyorum.

export * from './heroes/heroes.component'; 

ben app.component.ts ithalat beyanı değişti:

import { HeroesComponent } from './heroes'; 

uygulamamız aşağıdaki hata var yüklemeye çalıştığında yeni bir dosya kahramanlar/index.ts denilen oluşturdu geliştirici konsolunda görüldüğü gibi:

Error: Error: XHR error (404 Not Found) loading app/heroes.ts(…) 

plunkr burada bulunur: http://plnkr.co/edit/YXY0PwuFot1g1s6qTqDt?p=preview

Bunun SystemJS ile bir ilgisi olduğundan şüpheleniyorum ama bunu düzeltmek için yeterli bilgim yok. Biri yardım edebilir mi? Şimdiden teşekkürler!

+0

http://stackoverflow.com/questions/37082601/how-to-import-a-barrel-by-folder-name-only adresine bakın. –

+0

Lütfen sorununuzu yeterince çözdüyse aşağıdaki cevabı kabul etmeyi unutmayın. . –

cevap

13

Eğer varil çalışması için birkaç değişiklik yapmak zorunda,

index.ts

export * from './heroes.component'; 

systemjs.config.js

map'a bir giriş ekleyin,

Bu barrel sorunu çözmek, ancak kahramanlar bileşenlerin içinde de hero-detail atıfta sahip olarak tamamen size böylece, tüm sorunu çözmezse

'heroes': { main: 'index.ts', defaultExtension: 'ts' }, 

aşağıda gibi bir giriş yapın packages sonra

'heroes':      'app/heroes', 

, Bunların üzerinde çalışmak zorunda. Bu yardımcı olur

Umut !!

+0

Değişikliklerinizi plunkr'a eklemeyi denedim ancak şu hatayı alıyorum: Hata: XHR hatası (404 Bulunamadı) loading /app/heroes/heroes/heroes.component.ts(…) – Foxy

+0

hala dışa aktarma * 'dan' './heroes/heroes.component; uygulamanızda/heroes/index.ts dosyasında, './heroes.component' adresinden * export olmalıdır; –

+0

ah haklısın, teşekkürler, şimdi çalışıyor! – Foxy

0

Sizin plunkr'ınızda görebileceğim kadarıyla, HeroesComponent sınıfı, app/heroes/heroes.component.ts dosyasında yer almaktadır. Bu yüzden yerine aşağıdaki kullanır:

import { HeroesComponent } from './heroes.component';