Ich verwende SegmentedBar für Tabs. Und meine menu.html Datei sieht wie folgt aus:Ändern Sie den Inhalt für jede Registerkarte Angular 2
<StackLayout orientation="vertical" width="310" height="610">
<nav>
<h1 class="title">Hello World</h1>
<SegmentedBar #tabs [items]="items" [selectedIndex]="selectedIndex" ></SegmentedBar>
</nav>
</StackLayout>
- Das Problem selbst ist, wenn ich es ändern, nichts scheint auf UI passieren. Es zeigt nur die Tabs, das ist es, d. H. "Hello World" erscheint nicht auf der Oberfläche. Ich möchte meinen HTML ändern, also werden andere Aktionen passieren. Warum passiert das?
- Wie kann ich Ansichten ändern, so dass für jede Registerkarte verschiedene Ansichten angezeigt werden?
Und hier ist meine menu.component.ts Datei:
import {Component, OnInit, OnDestroy, AfterViewInit, ViewChild, ElementRef} from '@angular/core';
import {Page} from 'ui/page';
import {SegmentedBar, SegmentedBarItem, SelectedIndexChangedEventData} from 'ui/segmented-bar';
@Component({
selector: 'tabs',
templateUrl:"./components/menu/menu.html"
})
export class TabsComponent implements OnInit, OnDestroy, AfterViewInit {
selectedIndex: number;
items: Array<any>;
@ViewChild("tabs") tabs: ElementRef; // equal to getViewById() in NativeScript core
constructor(private page: Page) {
this.selectedIndex = 0;
this.items = [{ title: 'Home' }, { title: 'G+' }, { title: 'Sync' }];
}
ngOnInit() {
}
ngAfterViewInit() {
this.tabs.nativeElement.on(SegmentedBar.selectedIndexChangedEvent, (args: SelectedIndexChangedEventData) => {
switch (args.newIndex) {
case 0:
console.log('Home selected')
break;
case 1:
console.log('G+ selected')
break;
case 3:
console.log('Sync selected')
break;
}
})
}
ngOnDestroy() { }
}