2016-08-19 14 views
7

RC.3 ve kullanımdan kaldırılmış yönlendirici ile çalışan bir Açısal 1/Açısal 2 melez uygulamasına sahibim. Bulabildiğim tüm kaynaklardan, rc.5 yeni yönlendirici ile ilerlemek için büyük bir adımdır. Hibrid uygulamamı önyüklemesini alıp kök bileşenimi oluşturabiliyorum, ancak yönlendirme çalışmıyor. Ben kılan şablonunda şeyler atabilir olarakYönlendirme ile ngUpgrade kullanarak Açısal 2 rc.6 hibrid uygulamasını önyükleme

var upgradeAdapter = new UpgradeAdapter(forwardRef(() => AppModule)); 

angular.module('ng1App', []) 
    .directive('myBaseComponent', <any>upgradeAdapter.downgradeNg2Component(MyBaseComponent)); 

@NgModule({ 
    imports: [BrowserModule, routing], 
    providers: [appRoutingProviders, HTTP_PROVIDERS], 
    declarations: [MyBaseComponent, 
    MyNG2RoutableComponent] 
}) 
class AppModule { } 


upgradeAdapter.bootstrap(document.body, ['ng1App']).ready(function(){ 
    console.log('bootstraped!'); 
}); 

Benim kök NG2 bileşeni özyüklenirler. Ama ben <router-outlet></router-outlet> eklediğimde, çocuk rotasını oluşturmayacak gibi görünüyor. Eğer sadece NG2 uygulamasımın upgradeAdapter olmadan önyüklenmesi durumunda, her şey beklendiği gibi çalışır.

Sadece bir bağlantı parçasını kaçırıyor gibi hissediyorum. Herhangi bir fikir?


Açısal RC.6 ve Yönlendirici RC.2 Güncelleme Ben rc.6 yükseltilmiş

ve yönlendirici rc.2 sürümü geçen hafta, aynı sorun. Yönlendirme dahil edilmediğinde UpgradAdapter harika çalışır. Router çıkışını çektiğimde, hiçbir şey üretilmez ve hata olmaz.

+0

Eğer bileşenin 'direktifin mülkiyet dekoratör için yönlendirici direktifleri eklediniz mi? Oradan, '@ açısal/yönlendiriciden' {ROUTER_DIRECTIVES} içe aktarma; –

+0

@OlegBarinov Sadece bir atış yaptım, ama yine de hiçbir şey yapmadım. Yönlendirici direktiflerinin modül seviyesinde ele alınacağını düşündüm. Angular.io kılavuzunu takiben, app.routing.ts içinde yönlendirme kurdum ve daha sonra modülümün ithalatında kullanılan 'RouterModule.forRoot()' işlevini kullanıyorum. Her iki durumda da, direktifleri doğrudan ithal etmek işe yaramadı. –

+0

Geçtiğimiz hafta, aynı sorunla ilgili olarak rc.6'ya yükselttim. Yönlendirme dahil edilmediğinde UpgradAdapter harika çalışır. Router çıkışını çektiğimde, hiçbir şey üretilmez ve hata olmaz. –

cevap

3

Açısal Yönlendirici, en az bir bileşenin örneklenebilmesi için önyüklenmesini gerektirir. NgUpgrade, Açısal 1 tarafını önyükleme yaptığından, Açısal 2 önyüklemeli bileşen yoktur. Bu geçici çözüm için, ApplicationRef'u geçersiz kılmanız ve kendi bileşeninizi sağlamanız gerekir. İşte bunun nasıl başarılacağını gösteren bir çalışma plunker. Başvuru için

http://plnkr.co/edit/Gj8xq0?p=preview

:

https://github.com/angular/angular/issues/9870

+0

Tam olarak aradığım şey bu! Teşekkür ederim! Herhangi bir hata atıldığından, sihirli bir bağlantı sosu olması gerektiğini biliyordum. Belgelerin yakında güncelleneceğine eminim, ancak bu, uygulamamızı en son rc'ye güncellememizi engelliyor. –

+1

Bu artık Angular 2.1.0 ve üstü ile gerekli değildir - bu cevabı bu etkiyle güncellemek iyi olacaktır. – studds