我正在尝试使用 Angular 在 NativeScript 中开发一个小应用程序。我为每个选项卡使用了一个带有组件的 TabView。起初我使用 Angular 指令 (*ngIf) 来控制这些选项卡的可见性:
<TabView (selectedIndexChanged)="onSelectedIndexChanged($event)">
<StackLayout *tabItem="{title: 'Kezdőlap'}">
<Home></Home>
</StackLayout>
<ng-container *ngIf="loginService.isAuthorized">
<StackLayout *tabItem="{title: 'Hírek'}">
<News></News>
</StackLayout>
<StackLayout *tabItem="{title: 'Csomagok'}">
<Packages></Packages>
</StackLayout>
<ng-container *ngIf="loginService.loggedInUser.role == Role.Admin">
<StackLayout *tabItem="{title: 'Felhasználók'}">
<Users></Users>
</StackLayout>
</ng-container>
</ng-container>
</TabView>
首先,这个isAuthorized变量为假,当我将其更改为真时,所有选项卡都会出现。但是在我将isAuthorized值改回 false 后,我收到了一个错误:
错误:视图未添加到此实例。视图:CommentNode(51) CurrentParent:未定义 ExpectedParent:TabView(424)
经过一点谷歌,我发现了这个错误报告,并在其中声明我不能使用 Angular 指令删除选项卡,只能以编程方式重新绑定所有选项卡。
我的问题来了。我不知道如何实例化可以以编程方式插入到 StackLayout 的 Angular 组件(主页、新闻、包、用户)。