【发布时间】:2017-06-14 18:13:38
【问题描述】:
我希望能够根据网络状态更新 ionic 页面。该函数正在被调用,但页面没有被更新。如有建议,不胜感激。
向所有订阅者发送消息的消息服务。
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { Subject } from 'rxjs/Subject';
/*
Generated class for the MessageProvider provider.
See https://angular.io/docs/ts/latest/guide/dependency-injection.html
for more info on providers and Angular 2 DI.
*/
@Injectable()
export class MessageProvider {
private subject = new Subject<any>();
constructor() {}
sendMessage(message: string) {
this.subject.next(message);
}
clearMessage() {
this.subject.next();
}
getMessage(): Observable<any> {
return this.subject.asObservable();
}
}
查看网络状态的代码如下,在app.component中找到
network.onDisconnect().subscribe(() => {
console.log(0);
MessageProvider.sendMessage('Not Connected!');
});
network.onConnect().subscribe(() => {
console.log(1);
MessageProvider.sendMessage('Connected!');
});
消息正在传输到 page.ts,但 UI 没有更新。
message: any;
subscription: Subscription;
ionViewDidLoad() {
this.subscription = this.MessageProvider.getMessage().subscribe(message => {
console.log(message);
this.message = message;
});
}
模板如下
<p>
{{message}}
</p>
【问题讨论】:
-
控制台日志中的订阅方法正在打印您的消息?
-
@jonnysai 是的。首次加载应用程序时,会显示状态,但是当我更改连接状态时,会打印消息,但不会打印模板上的文本。
-
分享你的html代码。
-
我已经用模板更新了问题。
标签: angular ionic-framework ionic2 ionic3