我有一个与rc.3和不建议使用的路由器一起使用的Angular 1 / Angular 2混合应用程序。从我能找到的所有来源来看,rc.5是迈向新路由器的重要一步。我可以启动混合应用程序,并渲染我的根组件,但是路由不起作用。
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!');
});
我的根NG2组件自举,因为我可以将东西扔进它呈现的模板中。但是似乎当我添加时,<router-outlet></router-outlet>
它不会渲染子路线。如果仅引导我的NG2应用程序而没有upgradeAdapter,则一切正常。
我觉得我只想念一个连接件。有任何想法吗?
上周,我将路由器升级到了rc.6和rc.2版本,同样的问题。不涉及路由时,UpgradAdapter效果很好。一旦拉入路由器插座,便没有任何显示,也没有错误。
Angular Router至少需要引导一个组件才能实例化。由于ngUpgrade引导Angular 1一侧,因此没有Angular 2自举组件。要解决此问题,您必须重写ApplicationRef
和提供自己的组件。这是一个工作的小伙子,展示了如何实现这一目标。
http://plnkr.co/edit/Gj8xq0?p=预览
以供参考:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句