我们正在尝试执行以下操作以在我们的应用上显示连接状态:
this.helpers({
userBlock: () => {
//...
return {
name: name,
connectionStatus: Meteor.status().connected
}
}
});
然而,在断开服务器之后,帮助程序不会运行。通过$ scope和controller reference将Meteor.status().connected
变量直接输出到模板中,也不会看到它的值更新。关于我们如何通过Meteor.status().connected
更改让帮助程序重新运行的任何想法?
答案 0 :(得分:1)
这是我实现的方式,它按预期工作。当服务器关闭时,模板呈现"断开连接"消息,当服务器再次返回时它会消失。
var SHOW_CONNECTION_ISSUE_KEY = 'showConnectionIssue';
Session.setDefault(SHOW_CONNECTION_ISSUE_KEY, false);
Meteor.startup(function () {
// Only show the connection error box if it has been 5 seconds since
// the app started
setTimeout(function () {
// Show the connection error box
Session.set(SHOW_CONNECTION_ISSUE_KEY, true);
}, 5000);
});
Template.header.helpers({
connected: function() {
if (Session.get(SHOW_CONNECTION_ISSUE_KEY)) {
return Meteor.status().connected;
} else {
return true;
}
}});
并在模板中:
{{#unless connected}}
<div class="alert alert-danger">
Disconnected
</div>
{{/unless}}