【发布时间】:2016-09-17 00:14:21
【问题描述】:
我正在使用带有模板语法的 TabView 组件对其进行迭代并在其中添加项目(使用可观察集合和异步管道)。我的项目来自一个 http 请求。
我的home.component.tns.html如下:
<ActionBar title="Angular 2 Seed Advanced (nativescript)">
</ActionBar>
<StackLayout>
<TabView selectedIndex="0" selectedColor="#FF0000">
<template ngFor let-tab [ngForOf]="tabs | async">
<StackLayout *tabItem="tab">
<Label text="tab item"></Label>
</StackLayout>
</template>
</TabView>
<Button text="call something" (tap)="emptymethod()"></Button>
</StackLayout>
...还有我的 home.component.ts:
...
export class HomeComponent{
public tabs: Observable<any[]>;
constructor(private _menuService: MenuService) {
this._menuService.getMenu()
.map((menus) => {
let result: Array<any> = [];
if (menus) {
menus.forEach(menu => {
result.push({ 'title': menu.title });
});
}
return result;
})
.subscribe(
data => {
this.tabs = Observable.of<any[]>(data);
},
error => error => this._log.debug(error));
}
emptymethod() {
this._log.debug('HomeComponent - nada invoked');
}
ngOnInit() {
}
...
当界面渲染时,TabView 菜单不会出现,但是当我点击 call something 按钮并调用 emptymethod 时,TabView 内的项目会出现,在换句话说,在“刷新”该组件后...
这不应该自动发生吗?
【问题讨论】:
标签: typescript angular rxjs nativescript