2016-03-28 22 views
1

Bir sayfada iki tamamen alakasız bileşen var. Bir üst şablon altında alt bileşenler olarak yüklemek istemiyorum. Her ikisini de tek bir sayfaya nasıl yüklerim? Verileri paylaşmak istiyorsanız örneğinAçısal 2: ayrı, alakasız bileşenlerin bir sayfaya nasıl yükleneceği

@Injectable() 
class MySharedService { 
} 

var shared = new MySharedService(); 

bootstrap(AppComponent1, [provide(MySharedService, {useValue: shared}]); 
bootstrap(AppComponent2, [provide(MySharedService, {useValue: shared}]); 

Bu şekilde paylaşılan bir hizmeti kullanabilir

bootstrap(AppComponent1, [ /* providers here */]); 
bootstrap(AppComponent2, [ /* providers here */]); 

<section> 
<h1>Heading</h1> 
<the-first-component></the-first-component> 
</section> 

(lots of html) 

<main> 
<h1>Another heading</h1> 
<the-second-component></the-second-component> 
</main> 

(lot more html) 

cevap

4

Hemen her bileşen için bootstrap çağırdığınızda bir AppComponentx ya biri onların Alt bileşenler veya başka bir hizmet,

gibi bir yapıcı parametresine sahiptir

Sayfanızdaki farklı Angular2 "uygulamaları" arasında kolayca iletişim kurabilmek için her yerde aynı genel örneğe sahipsiniz. Ayrıca bkz detect change of nested property for component input

+0

Ayrıca bkz http://stackoverflow.com/questions/36263181/angular-2-more-than-one-component-on-same-page/36263211#36263211 –

+0

i tümü üzerinde önyükleme çağırırsanız bileşenleri ve onlar sayfada mevcut değil, bir hata alacağım. Bundan kaçınmanın herhangi bir yolu var mı? Amacım, sayfaya yeniden yüklenebilen birden çok yeniden kullanılabilir bileşen kullanmaktır. – pfried

+0

@pfried "bootstrap (...)" özelliğini bir 'try' /' catch' olarak veya sanırım http://stackoverflow.com/questions/32488245/custom-exception-handler-in-angular2 istediğini yapmalı. –