我正在尝试使用Angular在NativeScript中开发一个小应用程序。我使用了TabView,每个Tab都有一个组件。起初我使用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 变量为false,当我将其更改为true时,将显示所有选项卡。但在我将 isAuthorized 值更改为false后,我收到错误:
错误:视图未添加到此实例。查看:CommentNode(51)CurrentParent:undefined ExpectedParent:TabView(424)
在Google之后,我发现了这个BugReport并且在其中声明我无法删除带有Angular指令的Tabs,只能以编程方式重新绑定所有Tab。
这就是我的问题。我不知道如何实例化可以以编程方式插入StackLayout的Angular组件(Home,News,Package,Users)。