【发布时间】:2016-05-19 15:18:31
【问题描述】:
我这里有我用 Ionic 设置的代码。一切运行良好。 我可以将我的结果从 Firebase 注销到控制台,但是当我将它们分配给 ngFor 列表时,它们仍然是未定义的,从查看列表看来。由于某种原因,他们没有更新。一旦我从服务器获取了一些异步数据,有没有办法让 UI 更新。
import { Injectable } from 'angular2/core';
import { Observable } from 'rxjs/Rx';
@Injectable()
var ref = new Firebase('https://myapi.firebaseio.com');
declare var Firebase;
export class NewsService {
constructor() {
}
get(source) {
return new Observable(observer => {
ref.once('value', snapshot => {
observer.next(snapshot.val().News[source]);
observer.complete();
});
});
}
}
/*~~~~~~~~~~~~~~~*///Other file///*~~~~~~~~~~~~~~~*/
import {Page, NavController, NavParams} from 'ionic-framework/ionic';
import { NewsService } from '../../shared/services/news-service';
@Page({
templateUrl: 'build/pages/news/news.html',
provider: [NewsService]
})
export class News {
items: Array<{title: string, src: string, href: string, alt: string}>;
constructor(private nav: NavController, navParams: NavParams, newsService: NewsService) {
var subscription = newsService.get('businesstech').subscribe(
val => this.items = val,
err => console.log(err),
() => {
subscription.unsubscribe();
}
)
}
}
<ion-navbar *navbar>
<button menuToggle>
<ion-icon name="menu"></ion-icon>
</button>
<ion-title>News</ion-title>
</ion-navbar>
<ion-content>
<ion-list>
<ion-item *ngFor="#item of items">
<ion-thumbnail>
<img src={{item.src}}>
<h2>{{item.title}}</h2>
<p>{{item.atl}}</p>
<button clear item-right (click)="open(item.href)">Open</button>
</ion-thumbnail>
</ion-item>
</ion-list>
</ion-content>
【问题讨论】:
-
感谢您指出这一点。希望我能找到它,但在这片丛林中,我不知道该输入什么。我已经搜索了整个网络,但没有得到帮助