NativeScript + Angular2 - SegmentedBar绑定
问题描述:
我几个小时都在遇到这个错误。当我运行应用程序时,IOS模拟器只显示一个白页,似乎没有任何东西被加载。我无法弄清楚什么是错的。我想用分段条形成一个页面。这是我的 'menu.component.ts' 文件代码:NativeScript + Angular2 - SegmentedBar绑定
import {Observable} from 'data/observable';
import {Component} from "@angular/core";
@Component({
selector: "menu",
templateUrl: "./components/menu/menu.html",
})
export class MenuComponent extends Observable {
public selectedItem: string;
public items: Array<any> = [
{ title: 'Home' },
{ title: 'G+' },
{ title: 'Sync' }
];
constructor() {
super();
this.selectedItem = `Selected: ${this.items[0].title}`;
}
public selectSegment(e: any) {
this.set('selectedItem', `Selected: ${this.items[e.newIndex].title}`);
}
}
和我的 'menu.html' 文件:
<SegmentedBar items="{{items}}" selectedIndexChanged="{{selectSegment}}" ></SegmentedBar>
<Label text="{{selectedItem}}" ></Label>
答
下面的代码是从http://www.nativescriptsnacks.com/snippets/2016/06/22/angular-segmentedbar.html 有轻微的变化。
总的来说,您正在使用NativeScript核心绑定语法而不是nativeScript + Angular-2绑定模型,它应该看起来像这样。在NativeScript +
<SegmentedBar #tabs [items]="items" [selectedIndex]="selectSegment"></SegmentedBar>
更多关于数据绑定角-2 here
// #tabs是提供一种用于您的组件的ID(等于ID = “选项卡”)的方式
下面是nativescriptsnacks.com(从原来的代码稍作更改)
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',
template: '<SegmentedBar #tabs [items]="items" [selectedIndex]="selectedIndex"></SegmentedBar>'
})
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: 'First' }, { title: 'Second' }, { title: 'Third' }];
}
ngOnInit() {
}
ngAfterViewInit() {
this.tabs.nativeElement.on(SegmentedBar.selectedIndexChangedEvent, (args: SelectedIndexChangedEventData) => {
switch (args.newIndex) {
case 0:
console.log('first selected')
break;
case 1:
console.log('second selected')
break;
case 2:
console.log('third selected')
break;
}
})
}
ngOnDestroy() { }
}
感谢ü非常多,我还是在t工作示例他学习的水平,没有意识到我在混音:) – kenkulan