Я использую этот официальный пример в своем приложении. который показывает, как <router-outlet>
реализован в {N}. Единственное отличие моего приложения в том, что я хочу использовать его на модальной странице. Но вместо элемента <router-outlet>
в модальном окне он загружает контент как новые страницы.
Модальный компонент
...
@Component({
selector: "modal",
template: `
<StackLayout>
<StackLayout>
<Button text="First" [nsRouterLink]="['/first']"></Button>
<Button text="Second" [nsRouterLink]="['/second']"></Button>
</StackLayout>
<router-outlet></router-outlet>
</StackLayout>
`
})
export class ModalComponent {
constructor(private page:Page, public params:ModalDialogParams) {
// ..
}
}
app.routing.ts
...
export const routes:Routes = [
{ path: "", redirectTo: "home", pathMatch: "full" },
{ path: "home", component: HomeComponent },
{ path: "modal", component: ModalComponent },
{ path: "first", component: FirstComponent },
{ path: "second", component: SecondComponent }
];
export const dynamicComponents = [
ModalComponent,
FirstComponent,
SecondComponent
];
...
app.module.ts
...
@NgModule({
imports: [
NativeScriptModule,
NativeScriptFormsModule,
NativeScriptHttpModule,
NativeScriptRouterModule,
NativeScriptRouterModule.forRoot(routes)
],
declarations: [
AppComponent,
HomeComponent,
...dynamicComponents
],
entryComponents: [
...dynamicComponents
],
bootstrap: [AppComponent]
})
export class AppModule {}
Есть идеи, почему /first
и /second
переходят на новую страницу вместо того, чтобы загружать модальное окно в router-outlet?
ОБНОВЛЕНИЕ:
Кажется, это ошибка. Смотрите мой ответ ниже.
NativeScriptRouterModule
, но делаю то же самое, используяRouterModule
из@angular/router
, и все работает нормально. - person saurav1405   schedule 27.12.2016